docs.rs failed to build tsoracle-paxos-toolkit-0.2.1
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.
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.
tsoracle-paxos-toolkit
Reusable glue for building services on top of OmniPaxos.
What's in the box
declare_omnipaxos_types_ext!— wraps the upstreamOmniPaxostype declarations with curated defaults so consumers supply only the slots that actually vary (entry type, application data).RocksdbStorage<T>— genericomnipaxos::storage::Storageimplementation backed by RocksDB. Passes OmniPaxos's bundled storage conformance suite;T: omnipaxos::storage::Entryis the host's log entry type.- Lifecycle helpers:
PaxosRunner<T, S>(the tick task + apply task lifecycle wrapper), theMessageSink<T>outbound trait,LeadershipState, the leader-event stream (LeaderEventStream+LeaderEventSender), and thePeerstruct used for follower-redirect endpoints. - Test fakes (feature-gated):
MemNetwork<T>for in-process clusters,PartitionControllerfor chaos coverage,MemStorage<T>for storage-free smoke tests. - Wire codec:
encode/decodehelpers using a[version_byte | postcard(payload)]framing, suitable for both paxos RPCs and storage records.
Feature flags
rocksdb-storage(default) — pulls inrocksdband exposesRocksdbStorage. Disable if you bring your own storage backend.test-fakes— exposes in-memory test fixtures (MemNetwork,MemStorage,PartitionController) for downstream conformance suites and chaos harnesses. Off by default.failpoints— enablesfailcrate integration so the toolkit's instrumented sites can be driven from chaos tests. Off by default.
Out of scope (today)
The toolkit deliberately stops short of shipping:
- A
Networkimplementation. Single-group services can roll their own with the codec helpers; multi-group routing belongs in the host runtime that owns the cluster lifecycle. - A snapshot-streaming transport. Filesystem-backed sidecar transports are opinionated enough that lifting one would constrain its callers.
- Multi-group host orchestration. Hosting N omnipaxos instances per process is a deployment-shaped concern, not a library concern.
These may move into the toolkit when a clear shared shape emerges.