1个不稳定发布

0.2.0 2021年9月28日

#167数据库实现

AGPL-3.0-or-later

98KB
1.5K SLoC

Raft

Rust实现的Raft一致性算法,重点关注

  • 正确性和可读性。核心实现是按照原始Raft TLA+规范编写的,以帮助可审计性。
  • 简洁性。目前尚未实现Diego Ongaro在其Raft论文中描述的一些可选功能,例如预投票、成员变更和快照。
  • 可用性。API的主要目标是简单且不易出错。

重要注意事项

  • 假设单播消息交付是无损的,以便复制可以取得进展。换句话说,一旦从API返回一个非广播消息,它必须保留并重新传输,直到目的地确认其已送达。但是,消息可以安全地无序或多次交付。为了防止无界队列,API设计为仅返回有限数量的未确认单播消息数据。

这个crate是 no_std,但依赖于alloc crate。

API文档
示例

crate功能

这个crate有以下可选功能

  • prost 启用Raft消息的可选protobuf序列化。还提供了一个相应的protobuf文件

许可证

版权(C)2019 Open Whisper Systems
版权(C)2021 jessa0

本程序是自由软件:您可以按照自由软件基金会发布的GNU Affero通用公共许可证的条款重新分发和/或修改它,许可证版本为3,或者(根据您的选择)任何较新版本。

本程序以希望它将是有用的目的进行分发,但没有任何保证;甚至没有关于其适销性或适用于特定目的的暗示保证。有关详细信息,请参阅GNU Affero通用公共许可证。

您应该已经收到了随此程序一起提供的GNU Affero General Public License副本。如果没有,请参阅https://gnu.ac.cn/licenses/

依赖项

~2.5MB
~53K SLoC