An understandable, fast, scalable and optimized implementation of Raft algoritm. It is asynchronous(built on tokio runtime) and supports zero-copy. It does not assume storage to be non-malicious, if corrupted, it will repair the logs via peer-to-peer communication.
-
This project is still under development and is not yet production-ready. It is not recommended to use this in production environments.
-
We are actively working on this project to make it better and more reliable. If you have any suggestions or feedback, please feel free to open an issue or a pull request. This is true until we reach version 1.0.0.
-
Release every 2 weeks.
- Understandable
- Fast
- Scalable
- Zero-Copy support
- Asynchronous
- Default Leader
- Leadership preference
- Log compaction
- Tigerbeetle style replica repair
- Dynamic cluster membership changes support
- Test for dynamic cluster membership changes
- Production-ready
- Test replica repair thoroughly
- io_uring support
- Complete batch write implementation
- Improve Log compaction
- Improve error handling
- RDMA support
- Add more comprehensive tests
- Enhance documentation
- Deterministic Simulation Testing
- Benchmarking
- Ensure you have Rust installed. If not, follow the instructions here.
- Clone the repository:
git clone https://github.com/your-username/raft-rs.git cd raft-rs
- Run the project:
cargo run --example simple_run
- Release the project:
cargo build --release
Contributions are welcome! If you have any ideas, suggestions, or issues, please feel free to open an issue or a pull request. We aim to make this project better with your help.
This project is licensed under the MIT License. For more information, please refer to the LICENSE file.
For any questions or feedback, please reach out to [[email protected]].