SkillAgentSearch skills...

Openraft

rust raft with improvements

Install / Use

/learn @databendlabs/Openraft
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

<div align="center"> <h1>OpenRaft</h1> <h4> Advanced <a href="https://raft.github.io/">Raft</a> in 🦀 Rust using <a href="https://tokio.rs/">Tokio</a>. Please ⭐ on <a href="https://github.com/databendlabs/openraft">GitHub</a>! </h4>

Crates.io docs.rs DeepWiki guides Discord Chat <br/> CI Coverage Status License Crates.io Crates.io

</div>

This project intends to improve raft as the next-generation consensus protocol for distributed data storage systems (SQL, NoSQL, KV, Streaming, Graph ... or maybe something more exotic).

Currently, openraft is the consensus engine of meta-service cluster in databend.

Whatever your style, we're here to support you. 🚀 Let's make something awesome together!

Status

  • The features are almost complete for building an application.
  • Performance: Supports 70,000 writes/sec for a single writer, and 5,600,000 writes/sec with batch writes. See: Performance
  • Unit test coverage stands at 92%.
  • The chaos test has not yet been completed, and further testing is needed to ensure the application's robustness and reliability.

API status

  • OpenRaft API is not stable yet. Before 1.0.0, an upgrade may contain incompatible changes. Check our change-log. A commit message starts with a keyword to indicate the modification type of the commit:

    • DataChange: on-disk data types changes, which may require manual upgrade.
    • Change: if it introduces incompatible changes.
    • Feature: if it introduces compatible non-breaking new features.
    • Fix: if it just fixes a bug.

Versions

Roadmap

<!-- - - [ ] Consider separating log storage and log order storage. - Leader only determines and replicates the index of log entries, not log - payload. -->

Performance

The benchmark is focused on the OpenRaft framework itself and is run on a minimized store and network. This is NOT a real world application benchmark!!!

Single writes:

| clients | put/s | | --: | --: | | 4096 | 3,548,000 | | 1024 | 3,006,000 | | 256 | 1,808,000 | | 64 | 912,000 | | 1 | 33,000 |

Batch writes (4 entries per batch):

| clients | put/s | | --: | --: | | 4096 | 5,615,000 |

For benchmark detail, go to the ./benchmarks/minimal folder.

Features

  • Async and Event-Driven: Operates based on Raft events without reliance on periodic ticks, optimizing message batching for high throughput.
  • Extensible Storage and Networking: Customizable via RaftLogStorage, RaftStateMachine and RaftNetwork traits, allowing flexibility in choosing storage and network solutions.
  • Unified Raft API: Offers a single Raft type for creating and interacting with Raft tasks, with a straightforward API.
  • Cluster Formation: Provides strategies for initial cluster setup as detailed in the cluster formation guide.
  • Built-In Tracing Instrumentation: The codebase integrates tracing for logging and distributed tracing, with the option to [set verbosi

Related Skills

View on GitHub
GitHub Stars1.9k
CategoryDevelopment
Updated10h ago
Forks200

Languages

Rust

Security Score

100/100

Audited on Apr 7, 2026

No findings