2 stable releases

1.1.0 May 20, 2021
1.0.0 May 11, 2021

#1043 in Asynchronous


Used in agreed-memstore

MIT/Apache

235KB
3.5K SLoC

Agreed

Fork of async-raft, the Tokio-based Rust implementation of the Raft distributed consensus protocol.

Continuous Integration Crates.io docs.rs License


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