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.