34 releases

new 0.9.11 May 20, 2024
0.9.7 Apr 25, 2024
0.9.3 Mar 21, 2024
0.8.8 Dec 13, 2023
0.6.4 Jan 3, 2022

#39 in Asynchronous

Download history 1442/week @ 2024-02-04 426/week @ 2024-02-11 2804/week @ 2024-02-18 3497/week @ 2024-02-25 776/week @ 2024-03-03 583/week @ 2024-03-10 2684/week @ 2024-03-17 2676/week @ 2024-03-24 1773/week @ 2024-03-31 2172/week @ 2024-04-07 1642/week @ 2024-04-14 2631/week @ 2024-04-21 1812/week @ 2024-04-28 3581/week @ 2024-05-05 3309/week @ 2024-05-12 3003/week @ 2024-05-19

11,880 downloads per month
Used in 7 crates


25K SLoC


Advanced Raft in 🦀 Rust using Tokio. Please ⭐ on github!

Crates.io docs.rs guides Discord Chat
CI License Crates.io Crates.io

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.

  • 🚀 Get started:

  • 🙌 Questions?

    • Why not take a peek at our FAQ? You might find just what you need.
    • Wanna chat? Come hang out with us on Discord!
    • Or start a new discussion over on GitHub.
    • Or join our Feishu group.
    • And hey, if you're on WeChat, add us: drmingdrmer. Let's get the conversation started!

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


  • The features are almost complete for building an application.
  • Performance: Supports 70,000 writes/sec for single writer, and 1,000,000 writes/sec for 256 writers. 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.




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!!!

clients put/s ns/op
256 1,014,000 985
64 730,000 1,369
1 70,000 14,273

For benchmark detail, go to the ./cluster_benchmark folder.


  • 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 verbosity levels at compile time.


Who use it


Check out the CONTRIBUTING.md guide for more details on getting started with contributing to this project.


Made with contributors-img.


Openraft is licensed under the terms of the MIT License or the Apache License 2.0, at your choosing.


~221K SLoC