Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
reconcile-gossip
⚠ Implementation detail — no stability guarantee
Do not depend on this crate directly. Depend on
reconcile, which re-exports the parts meant for consumers (reconcile::UdpTransport,reconcile::Transport,reconcile::Discovery, …).This crate publishes to crates.io for one reason: cargo has no vendoring, so
reconcilecannot be published unless every crate it depends on is published too — the same reasonserde_derive,pin-project-internalandtracing-attributesare on the registry. Anything here may change or disappear in any release, including a patch release, with no deprecation period and no mention inreconcile's changelog. Several items arepubonly so the facade can reach them across the crate boundary; they were private before the workspace split and are not supported API. Current publish status: thev1.0.0milestone and issue #206.
The gossip adapter layer of reconcile-rs — everything a
replica needs to talk to its peers, and nothing about what it says:
- the
Transportport over datagrams, withUdpTransportfor real sockets andInMemoryTransport/InMemoryNetworkfor deterministic socket-free tests; - the bincode wire-encoding functions, with a bounded message count per datagram;
- per-datagram MAC authentication and optional XChaCha20-Poly1305 encryption over a shared cluster key, plus per-sender replay protection (sequence window + freshness stamp);
- the
Discoveryport with itsRandomProbeandDnsDiscoveryadapters.
It deliberately does not depend on the domain crate: nothing here knows what an Entry, a
Timestamp or a Key is. A datagram is a byte slice and a peer is an address.
Name
The package is reconcile-gossip because gossip is taken on crates.io. The crate is still
gossip in every dependent's source, via cargo's dependency renaming:
= { = "reconcile-gossip", = "0.1.0" }
License
Licensed under either of Apache-2.0 or MIT, at your option.