@suaveplan/crdt - Conflict-free replicated data types: G-Counter, PN-Counter, OR-Set, LWW-Register, MV-Register, 2P-Set, RGA, Vector Clock, and Sync Manager
Summary
Conflict-free Replicated Data Types (CRDTs) for distributed systems. Provides
eight composable CRDT primitives plus a vector-clock and a sync manager that
coordinate delta exchange across heterogeneous replicas.
Documentation tree
- [sync-manager](./src/core/sync-manager/sync-manager.md) — _(no submodules)_- [vector-clock](./src/core/vector-clock/vector-clock.md) — _(no submodules)_- [vector-clock](./src/core/vector-clock/vector-clock.md) — _(no submodules)_- [g-counter](./src/crdts/g-counter/g-counter.md) — _(no submodules)_- [g-counter](./src/crdts/g-counter/g-counter.md) — _(no submodules)_- [lww-register](./src/crdts/lww-register/lww-register.md) — _(no submodules)_- [lww-register](./src/crdts/lww-register/lww-register.md) — _(no submodules)_- [mv-register](./src/crdts/mv-register/mv-register.md) — _(no submodules)_- [mv-register](./src/crdts/mv-register/mv-register.md) — _(no submodules)_- [or-set](./src/crdts/or-set/or-set.md) — _(no submodules)_- [or-set](./src/crdts/or-set/or-set.md) — _(no submodules)_- [pn-counter](./src/crdts/pn-counter/pn-counter.md) — _(no submodules)_- [pn-counter](./src/crdts/pn-counter/pn-counter.md) — _(no submodules)_- [rga](./src/crdts/rga/rga.md) — _(no submodules)_- [rga](./src/crdts/rga/rga.md) — _(no submodules)_- [two-p-set](./src/crdts/two-p-set/two-p-set.md) — _(no submodules)_- [two-p-set](./src/crdts/two-p-set/two-p-set.md) — _(no submodules)_- [errors](./src/errors/crdt-error.md) — _(no submodules)_- [crdt-error](./src/errors/crdt-error.md) — _(no submodules)_- [sync-manager](./src/core/sync-manager/sync-manager.md) — _(no submodules)_- [vector-clock](./src/core/vector-clock/vector-clock.md) — _(no submodules)_- [vector-clock](./src/core/vector-clock/vector-clock.md) — _(no submodules)_- [g-counter](./src/crdts/g-counter/g-counter.md) — _(no submodules)_- [g-counter](./src/crdts/g-counter/g-counter.md) — _(no submodules)_- [lww-register](./src/crdts/lww-register/lww-register.md) — _(no submodules)_- [lww-register](./src/crdts/lww-register/lww-register.md) — _(no submodules)_- [mv-register](./src/crdts/mv-register/mv-register.md) — _(no submodules)_- [mv-register](./src/crdts/mv-register/mv-register.md) — _(no submodules)_- [or-set](./src/crdts/or-set/or-set.md) — _(no submodules)_- [or-set](./src/crdts/or-set/or-set.md) — _(no submodules)_- [pn-counter](./src/crdts/pn-counter/pn-counter.md) — _(no submodules)_- [pn-counter](./src/crdts/pn-counter/pn-counter.md) — _(no submodules)_- [rga](./src/crdts/rga/rga.md) — _(no submodules)_- [rga](./src/crdts/rga/rga.md) — _(no submodules)_- [two-p-set](./src/crdts/two-p-set/two-p-set.md) — _(no submodules)_- [two-p-set](./src/crdts/two-p-set/two-p-set.md) — _(no submodules)_- [errors](./src/errors/crdt-error.md) — _(no submodules)_- [crdt-error](./src/errors/crdt-error.md) — _(no submodules)_- [sync-manager](./src/core/sync-manager/sync-manager.md) — _(no submodules)_- [vector-clock](./src/core/vector-clock/vector-clock.md) — _(no submodules)_- [vector-clock](./src/core/vector-clock/vector-clock.md) — _(no submodules)_- [g-counter](./src/crdts/g-counter/g-counter.md) — _(no submodules)_- [g-counter](./src/crdts/g-counter/g-counter.md) — _(no submodules)_- [lww-register](./src/crdts/lww-register/lww-register.md) — _(no submodules)_- [lww-register](./src/crdts/lww-register/lww-register.md) — _(no submodules)_- [mv-register](./src/crdts/mv-register/mv-register.md) — _(no submodules)_- [mv-register](./src/crdts/mv-register/mv-register.md) — _(no submodules)_- [or-set](./src/crdts/or-set/or-set.md) — _(no submodules)_- [or-set](./src/crdts/or-set/or-set.md) — _(no submodules)_- [pn-counter](./src/crdts/pn-counter/pn-counter.md) — _(no submodules)_- [pn-counter](./src/crdts/pn-counter/pn-counter.md) — _(no submodules)_- [rga](./src/crdts/rga/rga.md) — _(no submodules)_- [rga](./src/crdts/rga/rga.md) — _(no submodules)_- [two-p-set](./src/crdts/two-p-set/two-p-set.md) — _(no submodules)_- [two-p-set](./src/crdts/two-p-set/two-p-set.md) — _(no submodules)_- [errors](./src/errors/crdt-error.md) — _(no submodules)_- [crdt-error](./src/errors/crdt-error.md) — _(no submodules)_- [sync-manager](./src/core/sync-manager/sync-manager.md) — _(no submodules)_- [vector-clock](./src/core/vector-clock/vector-clock.md) — _(no submodules)_ - [vector-clock](./src/core/vector-clock/vector-clock.md) — _(no submodules)_- [g-counter](./src/crdts/g-counter/g-counter.md) — _(no submodules)_ - [g-counter](./src/crdts/g-counter/g-counter.md) — _(no submodules)_- [lww-register](./src/crdts/lww-register/lww-register.md) — _(no submodules)_ - [lww-register](./src/crdts/lww-register/lww-register.md) — _(no submodules)_- [mv-register](./src/crdts/mv-register/mv-register.md) — _(no submodules)_ - [mv-register](./src/crdts/mv-register/mv-register.md) — _(no submodules)_- [or-set](./src/crdts/or-set/or-set.md) — _(no submodules)_ - [or-set](./src/crdts/or-set/or-set.md) — _(no submodules)_- [pn-counter](./src/crdts/pn-counter/pn-counter.md) — _(no submodules)_ - [pn-counter](./src/crdts/pn-counter/pn-counter.md) — _(no submodules)_- [rga](./src/crdts/rga/rga.md) — _(no submodules)_ - [rga](./src/crdts/rga/rga.md) — _(no submodules)_- [two-p-set](./src/crdts/two-p-set/two-p-set.md) — _(no submodules)_ - [two-p-set](./src/crdts/two-p-set/two-p-set.md) — _(no submodules)_- [errors](./src/errors/crdt-error.md) — _(no submodules)_ - [crdt-error](./src/errors/crdt-error.md) — _(no submodules)_
Packages
| Module |
Description |
GCounter |
Grow-only counter — monotonically increasing per-node counters |
PNCounter |
Positive-Negative counter — bidirectional counter from two G-Counters |
ORSet |
Observe-Remove Set — concurrent add survives remove via unique tags |
LWWRegister |
Last-Write-Wins Register — timestamp + node-id tie-breaking |
MVRegister |
Multi-Value Register — preserves all concurrent writes |
TwoPSet |
Two-Phase Set — once removed, never re-added |
RGA |
Replicated Growable Array — ordered list with causal insert/delete |
VectorClock |
Causality tracking via per-node monotonic counters |
CrdtSyncManager |
Delta-exchange coordinator for heterogeneous CRDT collections |
Quick Start
Installation
License
MIT