# Sorock
[](https://crates.io/crates/sorock)
[](https://docs.rs/sorock)
[](https://akiradeveloper.github.io/sorock/)

[](https://codecov.io/gh/akiradeveloper/sorock)
[](https://github.com/akiradeveloper/sorock/blob/master/LICENSE)
A Multi-Raft implementation in Rust language.
## Features

- Supports Multi-Raft. Mutliple Raft processes can coexist in a single OS process so they can share resources efficiently.
- Tested with 1000 shards per node.
- Heartbeats in shards are batched to reduce the network overhead.
- Based on [Tonic](https://github.com/hyperium/tonic) and efficient gRPC streaming is exploited in log replication and snapshot.
- Efficient backend implementation using [redb](https://github.com/cberner/redb).
- Writes in shards are batched in one transaction.
- Phi Accrual Failure Detector is used for leader failure detection.
- The adaptive algorithm allows you to not choose a fixed timeout number before deployment and to deploy Raft node in even geo-distributed environment where the latency between nodes isn't identical.
## Related Projects
- [phi-detector](https://github.com/akiradeveloper/phi-detector): Implementation of Phi Accrual Failure Detector in Rust.
## Author
Name: Akira Hayakawa
Email: ruby.wktk@gmail.com