pub struct SwarmBuilder<TBehaviour> { /* private fields */ }
Expand description

A SwarmBuilder provides an API for configuring and constructing a Swarm.

Implementations§

👎Deprecated since 0.41.0: Use SwarmBuilder::with_executor or SwarmBuilder::without_executor instead.

Creates a new SwarmBuilder from the given transport, behaviour and local peer ID. The Swarm with its underlying Network is obtained via SwarmBuilder::build.

Creates a new SwarmBuilder from the given transport, behaviour, local peer ID and executor. The Swarm with its underlying Network is obtained via SwarmBuilder::build.

Available on crate feature tokio and neither Emscripten nor WASI nor target_os="unknown" only.

Builds a new SwarmBuilder from the given transport, behaviour, local peer ID and a tokio executor.

Available on crate feature async-std and neither Emscripten nor WASI nor target_os="unknown" only.

Builds a new SwarmBuilder from the given transport, behaviour, local peer ID and a async-std executor.

Creates a new SwarmBuilder from the given transport, behaviour and local peer ID. The Swarm with its underlying Network is obtained via SwarmBuilder::build.

⚠️ Performance warning

All connections will be polled on the current task, thus quite bad performance characteristics should be expected. Whenever possible use an executor and SwarmBuilder::with_executor.

👎Deprecated since 0.41.0: Use SwarmBuilder::with_executor instead.

Configures the Executor to use for spawning background tasks.

By default, unless another executor has been configured, SwarmBuilder::build will try to set up a ThreadPool.

Configures the number of events from the NetworkBehaviour in destination to the ConnectionHandler that can be buffered before the Swarm has to wait. An individual buffer with this number of events exists for each individual connection.

The ideal value depends on the executor used, the CPU speed, and the volume of events. If this value is too low, then the Swarm will be sleeping more often than necessary. Increasing this value increases the overall memory usage.

Configures the number of extra events from the ConnectionHandler in destination to the NetworkBehaviour that can be buffered before the ConnectionHandler has to go to sleep.

There exists a buffer of events received from ConnectionHandlers that the NetworkBehaviour has yet to process. This buffer is shared between all instances of ConnectionHandler. Each instance of ConnectionHandler is guaranteed one slot in this buffer, meaning that delivering an event for the first time is guaranteed to be instantaneous. Any extra event delivery, however, must wait for that first event to be delivered or for an “extra slot” to be available.

This option configures the number of such “extra slots” in this shared buffer. These extra slots are assigned in a first-come, first-served basis.

The ideal value depends on the executor used, the CPU speed, the average number of connections, and the volume of events. If this value is too low, then the ConnectionHandlers will be sleeping more often than necessary. Increasing this value increases the overall memory usage, and more importantly the latency between the moment when an event is emitted and the moment when it is received by the NetworkBehaviour.

Number of addresses concurrently dialed for a single outbound connection attempt.

Configures the connection limits.

Configures an override for the substream upgrade protocol to use.

The subtream upgrade protocol is the multistream-select protocol used for protocol negotiation on substreams. Since a listener supports all existing versions, the choice of upgrade protocol only effects the “dialer”, i.e. the peer opening a substream.

Note: If configured, specific upgrade protocols for individual SubstreamProtocols emitted by the NetworkBehaviour are ignored.

The maximum number of inbound streams concurrently negotiating on a connection. New inbound streams exceeding the limit are dropped and thus reset.

Note: This only enforces a limit on the number of concurrently negotiating inbound streams. The total number of inbound streams on a connection is the sum of negotiating and negotiated streams. A limit on the total number of streams can be enforced at the StreamMuxerBox level.

Builds a Swarm with the current configuration.

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Should always be Self
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.