Skip to main content

coven_protocol/
lib.rs

1//! Protocol: Coven's deterministic model of replicated state — signed values,
2//! their parsing, and their validation.
3//!
4//! Everything here is a pure function of its inputs. No SQLite, no storage
5//! provider, no network, no clock reads of its own: a commit, a membership
6//! entry, a circle operation, or a provider proof either parses and validates
7//! or it does not, identically on every device. That is what lets two devices
8//! that never met agree on what happened.
9//!
10//! `write` lives here because a write's identity and publication status are
11//! stated in protocol terms — a `WriteId` names a host transaction, and a
12//! `PublishedWrite` records its exact accepted commit or the snapshot covering
13//! its reserved author position.
14
15pub mod audience_package;
16pub mod blob;
17pub mod causal_grants;
18pub mod circle;
19pub mod circle_activation;
20#[cfg(any(test, feature = "test-utils"))]
21pub mod circle_activation_test_fixtures;
22pub mod circle_control;
23pub mod circle_journal;
24pub mod circle_roster;
25#[cfg(any(test, feature = "test-utils"))]
26pub mod circle_test_fixtures;
27pub mod device_exclusion_journal;
28pub mod hlc;
29pub mod membership;
30pub mod membership_mutation;
31pub mod objects;
32pub mod owner_promotion_journal;
33pub mod prepared_commit;
34pub mod provider;
35pub mod reclaim;
36pub mod recovery;
37pub mod remote_object;
38pub mod store_commit;
39pub mod store_creation;
40pub mod synced_schema;
41pub mod wrapped_store_key;
42pub mod write;
43
44pub use objects::{
45    AwsPrincipal, CloudKitEnvironment, GoogleDriveCorpus, ProviderDeviceBinding,
46    ProviderPrincipalId, ResolvedProviderBinding, S3EndpointBinding, StoreProviderBinding,
47};
48
49pub use circle::{
50    Audience, Circle, CircleCloseParticipant, CircleCloseSettlement, CircleCloseStatus,
51    CircleControlCoord, CircleEpochCloseId, CircleId, CircleInfo, CircleMemberInfo,
52    CircleOperationBlock, CircleOperationId, CircleOperationInfo, CircleOperationKind,
53    CircleOperationState, CircleRole, CircleState,
54};
55pub use membership::{MemberInfo, MemberRole, MembershipCoord};
56pub use provider::{
57    CloudKitAcceptedShare, CrossPrincipalProbeReceipt, ExactSlotProbeReceipt,
58    ProviderAccessLocator, ProviderAccessWithdrawal, ProviderAdminChange, ProviderAdminGrantId,
59    ProviderAdminGrantRecord, ProviderAdminMembershipChange, ProviderAdminState,
60    ProviderCapabilityProof, ProviderProbeId, StoreMemberProviderAccessGrantRef,
61};
62pub use store_commit::{
63    CommitFrontier, DeviceJoinAttemptId, ObjectHash, StoreBatchCommitRef, StoreCommitCoord,
64    StoreCommitOrder, StoreDeviceId,
65};