2 stable releases
1.1.0 | May 20, 2021 |
---|---|
1.0.0 | May 11, 2021 |
#1043 in Asynchronous
Used in agreed-memstore
235KB
3.5K
SLoC
Agreed
Agreed is an implementation of the Raft consensus protocol in Rust, intented to serve as a basis for distributed data systems.
Getting Started
If you want to get started with building applications on top of Agreed, then checkout out The Agreed Guide. Afterwards, feel free to jump into the documentation.
Features
- Fully asynchronous, built on top of Tokio.
- Pluggable storage and network layer.
- Log compaction with snapshots and snapshot streaming.
- Fully pipelined and batched log replication with congestion control.
- Single-node cluster membership change operations.
- Non-Voter nodes for data replication/change data capture.
- Instrumented with tracing.
Original Author
This project, including the guide, was originally written by Anthony Dodd as async-raft. Huge props to him! ๐
License
Agreed is licensed under the terms of the MIT License or the Apache License 2.0, at your choosing.
NOTE: the appearance of the "section" symbols ยง
throughout this project are references to specific sections of the Raft spec.
Dependencies
~4โ10MB
~100K SLoC