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.