docs.rs failed to build lol-core-0.9.3
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build:
lol-core-0.9.5
lol
A Raft implementation in Rust language. To support this project please give it a ⭐
Features
- Implements all basic Raft features: Replication, Leader Election, Log Compaction, Persistency, Dynamic Membership Change, Streaming Snapshot, etc.
- Based on Tonic and efficient gRPC streaming is fully utilized in log replication and snapshot copying.
- Phi Accrual Failure Detector is used in leader failure detection. This adaptive algorithm lets you not choose a fixed timeout number before deployment and makes it possible to deploy Raft node in Geo-distributed environment. This algorithm is also used in Akka.
- Clear Abstractions: RaftApp is your application or state machine in Raft's context. RaftStorage is the abstraction of the backend storage with which both in-memory and persistent (backed by RocksDB) are supported.
Usage
Add this to your Cargo.toml
.
[dependencies]
lol-core = "0.9"
Available feature flags:
simple
: EnablesSimpleRaftApp
.gateway
: EnablesGateway
to interact with the cluster.rocksdb-backend
: Enables RocksDB-backedRaftStorage
.
Example
// Implement RaftApp for YourApp!
// Initialize your app.
let app = YourApp ;
// Choose a backend.
let storage = new;
// This is the Id of this node.
let uri = "https://192.168.10.15:50000".parse.unwrap;
let config = default.build.unwrap;
// Make a tower::Service.
let service = make_raft_service;
// Start a gRPC server with the service.
builder
.add_service
.serve.await;
Related Projects
- lol-perf: Performance analysis project which utilizes cargo-flamegraph and cargo-profiler.
- phi-detector: Implementation of Phi Accrual Failure Detector.
Development
Use docker container to make an dev environment on your computer.
make
to build the docker image./dev
to start the dev container
then
cargo build
to compile the entire projectmake test
to run the regression testsmake bench
to run the benchmark tests