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§
- Coordinator
Client - Coordinator client wrapper that can be shared across applications.
- Foaf
Query - FOAF (Friend-of-a-Friend) query message
- Foaf
Response - FOAF query response
- Gossip
Context - Central configuration structure for gossip protocol runtime.
- Gossip
Runtime - High-level Saorsa gossip runtime.
- Gossip
Runtime Builder - Builder for
GossipRuntime. - Gossip
Runtime Config - Configuration for the
GossipRuntimeBuilder. - LogPeer
Id - Wrapper around
PeerIdthat displays aspeer_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. - LogTopic
Id - Wrapper around
TopicIdthat displays astopic_xxxxxxxx, a salted 8-hex-char hash that is stable within one process run but unlinkable across daemons or after restart. - Message
Header - 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]>afterttl; the tail is serialized only whenversion >= 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)
- Presence
Record - Presence record (MLS-encrypted)
- Rendezvous
Client - Rendezvous client for shard-based user discovery.
- TopicId
- 32-byte topic identifier, one per MLS group
- UdpTransport
Adapter Config - Configuration for Ant-QUIC transport
Enums§
- Admission
Decision - X0X-0074 — outcome of an admission-control decision.
- Admission
Drop Reason - Why an admission was dropped.
- Message
Kind - Message kind enumeration for wire protocol
- Peer
Health - SWIM-derived health classification consumed by the pub-sub layer to adjust per-peer cooling decisions.
- Topic
Priority - X0X-0074 — substrate-level admission-control priority class for a topic.
Traits§
- Peer
Health Oracle - 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