37 个版本

新增 0.9.14 2024 年 8 月 23 日
0.9.13 2024 年 6 月 21 日
0.9.11 2024 年 5 月 20 日
0.9.3 2024 年 3 月 21 日
0.6.4 2022 年 1 月 3 日

#43异步 中排名

Download history 2367/week @ 2024-05-02 3737/week @ 2024-05-09 3136/week @ 2024-05-16 2669/week @ 2024-05-23 2894/week @ 2024-05-30 2740/week @ 2024-06-06 2109/week @ 2024-06-13 3215/week @ 2024-06-20 3187/week @ 2024-06-27 2619/week @ 2024-07-04 2811/week @ 2024-07-11 2402/week @ 2024-07-18 769/week @ 2024-07-25 454/week @ 2024-08-01 660/week @ 2024-08-08 416/week @ 2024-08-15

每月 2,756 次下载
7 crate 中使用

MIT/Apache

1MB
21K SLoC

Openraft

使用 🦀 Rust 和 Tokio 实现的高级 Raft。请在 github 上 ⭐ 支持它!

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

该项目旨在改进 Raft,使其成为分布式数据存储系统(SQL、NoSQL、KV、Streaming、Graph 等)下一代共识协议。

目前,openraft 是 databend 元服务集群的共识引擎。

无论你的风格如何,我们都在这里支持你。 🚀 一起创造一些精彩吧!

状态

  • 构建应用程序的功能几乎完整。
  • 性能:单个写入者支持每秒70,000次写入,256个写入者支持每秒1,000,000次写入。参见:性能
  • 单元测试覆盖率达到了92%。
  • 混沌测试尚未完成,需要进一步测试以确保应用程序的健壮性和可靠性。

API 状态

  • Openraft API 还未稳定。在 1.0.0 之前,升级可能包含不兼容的更改。查看我们的 变更日志。提交信息以关键字开头,表示提交的修改类型。

    • DataChange: 磁盘上的数据类型更改,可能需要手动升级。
    • Change: 如果引入了不兼容的更改。
    • Feature: 如果引入了兼容的非破坏性新功能。
    • Fix: 如果只是修复了bug。

版本

路线图

性能

基准测试专注于Openraft框架本身,在最小化的存储和网络环境下运行。这不是真实世界的应用基准测试!!!

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

有关基准测试的详细信息,请访问./cluster_benchmark文件夹。

特性

  • 异步和事件驱动:基于Raft事件进行操作,不依赖于周期性滴答,优化消息批量处理以提高吞吐量。
  • 可扩展的存储和网络:通过RaftLogStorageRaftStateMachineRaftNetwork特质进行自定义,允许灵活选择存储和网络解决方案。
  • 统一的Raft API:提供单个Raft类型以创建和与Raft任务交互,API简单直观。
  • 集群形成:提供初始集群设置的策略,详细内容请参考集群形成指南
  • 内置跟踪工具:代码库集成了tracing进行日志记录和分布式跟踪,可以在编译时设置详尽程度级别

功能

谁在使用它

贡献

有关如何为该项目做出贡献的详细信息,请参阅CONTRIBUTING.md指南。

贡献者

Made with contributors-img.

许可证

Openraft 采用 MIT 许可协议Apache License 2.0,您可任选其一。

依赖项

~6–8.5MB
~143K SLoC