Weave documentation
Rust referencel1fe-weave-core

l1fe-weave-core · network::swarm

Source declarations, signatures and documentation for network::swarm.

Reviewed implementation boundary: Some core wrappers derive transport keys from DID strings. Do not infer secret key custody or authenticated peers from a supplied DID string; inspect the chosen wrapper and transport configuration. See /libraries/weave-core/overview.

Source: sigil/weave/libs/weave-core/src/network/swarm.rs. SHA-256: 6103680ef46d105393a8a5511cee4ec7698f872efec14608a279e645d2e3afce.

This reference follows declared source modules, retains conditional attributes, and includes public declarations and implementation methods. Private-module re-exports and trait resolution require the compiler; this is a source reference, not a claim that every listed item is a root import. Function bodies and constant values are omitted.

Module condition:

#[cfg(feature = "p2p")]

network::swarm::SwarmConfig

Swarm configuration

#[cfg(feature = "p2p")]
#[derive(Debug, Clone)]
pub struct SwarmConfig {
/// Listen addresses

pub listen_addrs: Vec<Multiaddr>,
/// Maximum connections

pub max_connections: usize,
/// Connection timeout in seconds

pub connection_timeout: u64
}

Source line: 20.

network::swarm::Peer

Peer information

#[cfg(feature = "p2p")]
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Peer {
/// Peer ID

pub id: PeerId,
/// Addresses

pub addresses: Vec<Multiaddr>,
/// Agent DID (if known)

pub agent_did: Option<String>,
/// Connection state

pub connected: bool,
/// Last seen

pub last_seen: chrono::DateTime<chrono::Utc>
}

Source line: 41.

network::swarm::WeaveSwarmBehaviour

Swarm behavior combining multiple protocols

#[cfg(feature = "p2p")]
#[derive(NetworkBehaviour)]
pub struct WeaveSwarmBehaviour {
/// Kademlia DHT

pub kademlia: Kademlia<libp2p::kad::store::MemoryStore>,
/// mDNS for local discovery

pub mdns: libp2p::mdns::Behaviour<libp2p::mdns::Config>,
/// Identify protocol

pub identify: libp2p::identify::Behaviour,
/// Request-response for custom protocols

pub request_response:
        libp2p::request_response::Behaviour<crate::network::protocol::WeaveProtocol>
}

Source line: 56.

network::swarm::Swarm

P2P swarm manager

#[cfg(feature = "p2p")]
pub struct Swarm {

}

Source line: 69.

network::swarm::Swarm::new

Create a new swarm for a given DID

Note: Network keys are separate from identity keys. We derive a deterministic network keypair from the DID to ensure consistent peer IDs across restarts.

#[cfg(feature = "p2p")]
pub async fn new(config: SwarmConfig, owner_did: Did) -> Result<Self>;

Source line: 88.

network::swarm::Swarm::start

Start the swarm event loop

#[cfg(feature = "p2p")]
pub async fn start(&self) -> Result<()>;

Source line: 172.

network::swarm::Swarm::connect

Connect to a peer

#[cfg(feature = "p2p")]
pub async fn connect(&self, address: Multiaddr) -> Result<()>;

Source line: 218.

network::swarm::Swarm::local_peer_id

Get local peer ID

#[cfg(feature = "p2p")]
pub fn local_peer_id(&self) -> &PeerId;

Source line: 228.

network::swarm::Swarm::owner_did

Get owner DID

#[cfg(feature = "p2p")]
pub fn owner_did(&self) -> &Did;

Source line: 233.

network::swarm::Swarm::peers

Get connected peers

#[cfg(feature = "p2p")]
pub fn peers(&self) -> Vec<Peer>;

Source line: 238.

On this page