logicaffeine_data/crdt/mod.rs
1//! CRDT (Conflict-free Replicated Data Types)
2//!
3//! Pure data structures for eventually consistent distributed state.
4//! CRDTs provide automatic conflict resolution - any two replicas can be
5//! merged to produce the same result regardless of order.
6//!
7//! This crate is WASM-safe: no IO and no network dependencies. Merging never reads a clock;
8//! only native `generate_replica_id` does, to seed a random replica id.
9//! The `Synced<T>` wrapper lives in `logicaffeine_system` (requires tokio/libp2p).
10
11mod gcounter;
12mod latest;
13mod lww;
14mod merge;
15mod replica;
16
17// Causal infrastructure
18pub mod causal;
19
20// Delta CRDT support
21mod delta;
22mod delta_buffer;
23
24// Additional CRDTs
25mod mvregister;
26mod pncounter;
27
28// Complex CRDTs
29mod ormap;
30mod orset;
31pub mod sequence;
32
33// NOTE: sync.rs (Synced<T>) is NOT in this crate - it's in logicaffeine_system
34// because it requires tokio and networking.
35
36pub use gcounter::GCounter;
37pub use latest::LatestWrite;
38pub use lww::LWWRegister;
39pub use merge::Merge;
40
41// Replica utilities
42pub use replica::{generate_replica_id, ReplicaId};
43
44// Causal types
45pub use causal::{Dot, DotContext, VClock};
46
47// Delta types
48pub use delta::DeltaCrdt;
49pub use delta_buffer::DeltaBuffer;
50
51// Additional CRDTs
52pub use mvregister::MVRegister;
53pub use pncounter::PNCounter;
54
55// Complex CRDTs
56pub use ormap::ORMap;
57pub use orset::{AddWins, ORSet, RemoveWins, SetBias};
58pub use sequence::{RGA, YATA};