OpenRaft

Advanced Raft in 🦀 Rust on any async runtime. Please ⭐ on GitHub!

Crates.io docs.rs DeepWiki guides Discord Chat
CI Coverage Status 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.

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

Status

API status

Versions

Roadmap

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

What sets OpenRaft apart from a standard Raft implementation:

Functionality:

Who uses it

📣 Using openraft in your project? We'd love to feature it here — open an issue to let us know, or skip the wait and submit a pull request directly.

Contributing

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

Contributors

Thanks to everyone who contributes to OpenRaft:

@ariesdevil @AustenSchunk @bohutang @byronwasti @caicancai @CentRa-Linux @claude @cliff0412 @ClSlaid @danthegoodman1 @devillove084 @Diggsey @diptanu @DRMacIver @drmingdrmer @eliasyaoyc @emmanuel-ferdman @emon100 @ethe @evanj @George-Miao @getong @GrapeBaBa @gtema @guojidan @hadronzoo @HaHa421 @homa31 @iamazy @iMashtak @jamals86 @Jason5Lee @jdockerty @jgrund @jkosh44 @josedab @justinlatimer @kper @leiysky @Licenser @lichuang @linsinn @Lymah123 @maackle @maciejkow @manuelarte @manuelgdlvh @MarinPostma @markus-behrens @marvin-j97 @mengxuroblox @mfelsche @Miaxos @monoid @MrCroxx @nasuiyile @Nicholas-Ball @othmanekn @penghs520 @PeterKnego @pfwang80s @Phoenix500526 @pinylin @ppamorim @PsiACE @Qian-Cheng-nju @rvielma @sainad2222 @SAY-5 @schreter @SebastianThiebaud @shuoli84 @socutes @sollhui @SteveLauC @sunli829 @sunsided @svix-jplatte @tangwz @thedodd @tisonkun @tobodner @trungda @tvsfx @undecidedapollo @Veeupup @VerifiedOrganic @vigith @wvwwvwwv @xu-cheng @Xuanwo @YangKian @ygf11 @youichi-uda @zach-schoenberger @zhixinwen

License

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