CmRDTs
A collection of Commutative Replicated Data Types (CmRDTs) implemented in pure Rust.
This library provides a set of simple, serializable, and composable CRDTs suitable for distributed systems and local-first applications.
Implemented CRDTs
GCounter: A Grow-Only Counter.PNCounter: A Positive-Negative Counter.
Testing 🧪
This library is tested using a combination of:
- Unit tests for core logic within each module.
- Property-based tests with
proptestto rigorously verify that the CRDTs adhere to their mathematical properties (commutativity, associativity, idempotence) across a wide range of randomized scenarios.
Roadmap 🗺️
The near-term goals for this library are:
- Implement
LWWRegister(Last-Write-Wins Register). - Implement
GSet(Grow-Only Set). - Implement
OrSet(Observed-Remove Set). - Implement
RGA(Replicable Growable Array).
License
This project is licensed under the MIT License. See the LICENSE-MIT file for details.