Skip to main content

Crate saorsa_gossip

Crate saorsa_gossip 

Source
Expand description

Canonical facade for the Saorsa Gossip protocol stack.

saorsa-gossip is the front-door crate for applications using the Saorsa Gossip overlay. It re-exports the published component crates under stable, predictable module names while keeping the lower-level crates available for advanced users who want finer dependency control.

The package also ships the experimental saorsa-gossip CLI binary for exercising the stack. The library facade is the primary API surface for new Rust integrations.

Modules§

coordinator
Coordinator adverts and bootstrap helpers.
crdt
Delta-CRDT synchronisation helpers.
groups
Group-security helpers.
identity
Post-quantum peer identity and signing helpers.
logging
Privacy-preserving log identifiers (issue #13, Layer 2).
membership
Membership and failure-detection layer.
prelude
Common imports for application developers.
presence
Presence beacons and online-state helpers.
pubsub
Pub/sub gossip dissemination.
rendezvous
Rendezvous sharding and provider summaries.
runtime
High-level runtime assembly API.
transport
Transport traits and QUIC/ant-quic integration.
types
Core identifiers, message headers, wire formats, admission and peer-health types.

Structs§

CoordinatorClient
Coordinator client wrapper that can be shared across applications.
FoafQuery
FOAF (Friend-of-a-Friend) query message
FoafResponse
FOAF query response
GossipContext
Central configuration structure for gossip protocol runtime.
GossipRuntime
High-level Saorsa gossip runtime.
GossipRuntimeBuilder
Builder for GossipRuntime.
GossipRuntimeConfig
Configuration for the GossipRuntimeBuilder.
LogPeerId
Wrapper around PeerId that displays as peer_xxxxxxxx, a salted 8-hex-char hash that is stable within one process run but unlinkable across daemons or after restart. See module docs for the threat model and properties.
LogTopicId
Wrapper around TopicId that displays as topic_xxxxxxxx, a salted 8-hex-char hash that is stable within one process run but unlinkable across daemons or after restart.
MessageHeader
Wire format header for control frames (ML-DSA signed) Format: ver:u8, topic:[u8;32], msg_id:[u8;32], kind:u8, hop:u8, ttl:u8 — v1, and exactly that. ADR-012 v2 appends payload_hash: Option<[u8;32]> after ttl; the tail is serialized only when version >= 2, so a v1 header re-serializes byte-identically (its existing signature must keep verifying) and a v1 buffer never misparses into v2.
PeerId
32-byte peer identifier: SHA-256(domain_separator || ML-DSA pubkey)
PresenceRecord
Presence record (MLS-encrypted)
RendezvousClient
Rendezvous client for shard-based user discovery.
TopicId
32-byte topic identifier, one per MLS group
UdpTransportAdapterConfig
Configuration for Ant-QUIC transport

Enums§

AdmissionDecision
X0X-0074 — outcome of an admission-control decision.
AdmissionDropReason
Why an admission was dropped.
MessageKind
Message kind enumeration for wire protocol
PeerHealth
SWIM-derived health classification consumed by the pub-sub layer to adjust per-peer cooling decisions.
TopicPriority
X0X-0074 — substrate-level admission-control priority class for a topic.

Traits§

PeerHealthOracle
Read-only oracle that exposes per-peer SWIM health to consumers.

Functions§

unix_millis
Get current time as Unix timestamp in milliseconds
unix_secs
Get current time as Unix timestamp in seconds