Conflict-Free Replicated Data Types for Rust
Lightweight (~50KB), no_std compatible, optimized for IoT, edge computing, WASM, and local-first architectures.
| Crate | Version | Description |
|---|---|---|
crdt-kit |
Core CRDT types: counters, registers, sets, sequences, collaborative text | |
crdt-store |
Persistence backends: SQLite, redb, in-memory | |
crdt-migrate |
Versioned serialization with automatic schema migrations | |
crdt-codegen |
Schema-driven code generation for persistence layers | |
crdt-cli |
CLI: crdt generate, crdt dev-ui, crdt inspect |
|
crdt-dev-ui |
Embedded web panel for database inspection |
cargo add crdt-kit --features serdeuse crdt_kit::prelude::*;
let mut counter_a = GCounter::new("node-a");
let mut counter_b = GCounter::new("node-b");
counter_a.increment();
counter_b.increment();
counter_b.increment();
counter_a.merge(&counter_b);
assert_eq!(counter_a.value(), 3); // always converges