1个不稳定发布
0.2.0 | 2021年9月28日 |
---|
#167 在 数据库实现 中
98KB
1.5K SLoC
Raft
Rust实现的Raft一致性算法,重点关注
- 正确性和可读性。核心实现是按照原始Raft TLA+规范编写的,以帮助可审计性。
- 简洁性。目前尚未实现Diego Ongaro在其Raft论文中描述的一些可选功能,例如预投票、成员变更和快照。
- 可用性。API的主要目标是简单且不易出错。
重要注意事项
- 假设单播消息交付是无损的,以便复制可以取得进展。换句话说,一旦从API返回一个非广播消息,它必须保留并重新传输,直到目的地确认其已送达。但是,消息可以安全地无序或多次交付。为了防止无界队列,API设计为仅返回有限数量的未确认单播消息数据。
这个crate是 no_std
,但依赖于alloc
crate。
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