mars-server · federation::transport
Public declarations and documentation for mars-server::federation::transport.
Package: mars-server · Workspace version: 0.1.0 · Module: federation::transport
This reference follows declared modules and public syntax, including public implementation methods. Function bodies and constant values are omitted. Feature conditions are retained. Private-module re-exports and trait resolution require the compiler; not every declaration is a root import.
federation::transport::FederationTransportError
Bounded transport failure classes used by circuit-breaker metrics.
#[derive(Debug, Clone, Copy, PartialEq, Eq, thiserror::Error)]
pub enum FederationTransportError {
#[error("federation request timed out")]
Timeout,
#[error("federation peer is unavailable")]
Unavailable,
#[error("federation TLS authentication failed")]
Tls,
#[error("federation protocol response is invalid")]
Protocol,
#[error("federation response exceeded its size limit")]
ResponseTooLarge,
#[error("federation operation is unsupported")]
Unsupported,
}Source line: 25.
federation::transport::FederationTransportError::as_str
Stable, bounded metric label.
pub const fn as_str(self) -> &'static str;Source line: 42.
federation::transport::FederationTransport
MARS-owned network boundary for federation.
#[async_trait]
pub trait FederationTransport: Send + Sync {
async fn sync(
&self,
peer: &FederationPeerState,
request: SignedFederationEnvelope<SyncRequest>,
) -> Result<SignedFederationEnvelope<SyncResponse>, FederationTransportError>;
async fn discover(
&self,
peer: &FederationPeerState,
request: SignedFederationEnvelope<FederatedDiscoveryRequest>,
) -> Result<SignedFederationEnvelope<FederatedDiscoveryResponse>, FederationTransportError>;
}Source line: 56.
federation::transport::FederationTransportRegistry
Immutable-after-startup transport registry for multiple identity-bound peers.
#[derive(Default)]
pub struct FederationTransportRegistry {
}Source line: 73.
federation::transport::FederationTransportRegistry::new
pub fn new() -> Self;Source line: 78.
federation::transport::FederationTransportRegistry::register
pub fn register(
&mut self,
peer_did: impl Into<String>,
transport: Arc<dyn FederationTransport>,
) -> Result<(), FederationTransportError>;Source line: 82.
federation::transport::FederationTransportRegistry::len
pub fn len(&self) -> usize;Source line: 94.
federation::transport::FederationTransportRegistry::is_empty
pub fn is_empty(&self) -> bool;Source line: 98.
federation::transport::ReqwestFederationTransport
HTTPS transport with DNS answers pinned for the client lifetime.
pub struct ReqwestFederationTransport {
}Source line: 133.
federation::transport::ReqwestFederationTransport::validate_mtls_files
Parse configured certificate/key/CA material without opening a socket.
pub fn validate_mtls_files(config: &MtlsConfig) -> Result<(), FederationTransportError>;Source line: 155.
federation::transport::ReqwestFederationTransport::for_peer
Resolve, validate, and pin one peer. No request is issued during construction.
pub async fn for_peer(
peer: &FederationPeerConfig,
public_key_base64url: impl Into<String>,
request_timeout: Duration,
connect_timeout: Duration,
) -> Result<Self, FederationTransportError>;Source line: 167.
Source provenance
Source: mars-server/src/federation/transport.rs · SHA-256 7152b5ddcd1ea06c2c526873fc8affc4df4d24269516c983b64a967105e15619. Package overview.