Weave documentation
Rust referenceweave-dht

weave-dht · relay

Source declarations, signatures and documentation for relay.

Source: sigil/weave/network/weave-dht/src/relay.rs. SHA-256: 2170cf1dc8c6ca3221494228b13ff18db87fbbda445e18af5350dcc1346426b2.

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.

relay::SessionId

Session ID type

#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub struct SessionId(Uuid);

Source line: 16.

relay::SessionId::new

pub fn new() -> Self;

Source line: 19.

relay::RelaySession

Relay session

#[derive(Debug, Clone)]
pub struct RelaySession {
pub id: SessionId,
pub from: PeerId,
pub to: PeerId,
pub created: Instant,
pub bytes_relayed: u64
}

Source line: 32.

relay::RelayConfig

Relay protocol configuration

#[derive(Debug, Clone)]
pub struct RelayConfig {
/// Allow this node to relay

pub allow_relay: bool,
/// Maximum concurrent sessions

pub max_sessions: usize,
/// Session timeout

pub session_timeout: Duration,
/// Maximum bytes per session

pub max_bytes_per_session: u64,
/// Rate limit per peer

pub rate_limit_per_peer: Option<u64>
}

Source line: 42.

relay::RelayProtocol

Relay protocol handler

pub struct RelayProtocol {

}

Source line: 72.

relay::RelayProtocol::new

pub fn new(config: RelayConfig) -> Self;

Source line: 119.

relay::RelayProtocol::handle_relay_request

Handle relay request

pub async fn handle_relay_request(
        &self,
        from: PeerId,
        to: PeerId,
        _token: [u8; 32],
    ) -> Result<SessionId>;

Source line: 128.

relay::RelayProtocol::relay_data

Relay data for a session

pub async fn relay_data(
        &self,
        session_id: SessionId,
        data: &[u8],
        from_peer: PeerId,
    ) -> Result<()>;

Source line: 175.

relay::RelayProtocol::close_session

Close a relay session

pub fn close_session(&self, session_id: SessionId);

Source line: 210.

relay::RelayProtocol::active_sessions

Get active session count

pub fn active_sessions(&self) -> usize;

Source line: 231.

relay::RelayProtocol::cleanup_expired

Clean up expired sessions

pub fn cleanup_expired(&self);

Source line: 236.

On this page