tikv/raft-rs

Raft distributed consensus algorithm implemented in Rust.

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 1 minute ago
Type:Library / SDKCategory(s):Scientific Computing & MathScience & Industry
Added to GitGenius on September 20th, 2026
Created on December 19th, 2017
Open Issues & Pull Requests: 79 (+0)
GitHub issues: Enabled
Number of forks: 469
Total Stargazers: 3,394 (+0)
Total Subscribers: 50 (+0)

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 11
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 755 days
Stale 30+ days: 10
Stale 90+ days: 9

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • contribution (9)
  • first-time-contributor (8)
  • Enhancement (1)
  • Help Wanted (1)
  • Question (1)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

Raft-rs is a Rust implementation of the Raft distributed consensus algorithm that provides the core consensus module for building fault-tolerant distributed systems.

The project addresses the challenge of achieving agreement across multiple nodes in a distributed system despite potential failures or network partitions. Raft replicates state machines through logs, ensuring that if all machines maintain the same sequence of logs and apply them in order, they will reach a consistent state. The implementation provides the essential consensus module as a customizable and flexible component, though users must supply their own Log, State Machine, and Transport layers to build a complete system.

Developers should adopt this tool when building distributed systems that require consensus and fault tolerance. The project is suitable for applications needing a replicated state machine approach to consistency. The implementation supports integration with either rust-protobuf or Prost for encoding and decoding gRPC messages, with rust-protobuf as the default and Prost available through a feature flag. The README acknowledges the Go implementation from etcd as a reference, positioning Raft-rs as a Rust alternative for teams already working in that ecosystem.

The project maintains active development with regular updates to the codebase. The team uses stable Rust with a minimum supported version requirement, ensuring broad compatibility. Benchmarking infrastructure using Criterion is in place to track performance characteristics, though the README notes that expanding the benchmarking suite remains an ongoing effort. The project accepts community contributions and maintains clear development practices requiring successful test runs and code quality checks before merging pull requests.