6 个版本 (3 个破坏性更新)
0.4.0 | 2019年2月5日 |
---|---|
0.3.2 | 2019年2月5日 |
0.3.1 | 2019年1月7日 |
0.2.0 | 2018年12月24日 |
0.1.0 | 2018年12月23日 |
#2481 in 解析器实现
2.5MB
2K SLoC
Rust 的复制对象表示法 (RON)
RON 是一个用于同步无冲突复制数据类型 (CmRDT) 的协议。文档托管在 docs.rs
。
与参考实现的不同之处
- 尚不支持 UUID 变体。
- 只支持 LWW 和 2-Phase 集合。
- 缺少握手协议。
- 仅发出关闭 RON。
用法
# Cargo.toml
[dependencies]
ron-crdt = "0.4.0"
许可证
本项目采用以下任一许可证:
- GNU Lesser General Public License,版本 2.1 或更高版本,(LICENSE-LGPL2 或 https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html)
- MIT 许可证,(LICENSE-MIT)
由您选择。
lib.rs
:
这是 ron-crdt
包的文档。
RON 是复制对象表示法,由 Victor Grishchenko 开发的一种分布式实时数据格式。
RON 是 Swarm 中对象状态和变更,以及 Swarm 协议所有其他部分的表示语言。RON 仅由一系列 UUID(128 位数字)组成,但 UUID 的顺序很重要,并且根据上下文存在许多不同的 UUID 类型。
UUID 为对象及其变更提供足够的元数据,以在网络中的对等体上实现 CRDT。
RON 有两种不同的线格式:文本和二进制。两者都提供了多种压缩方法,增加了复杂性。我们将在稍后处理压缩,但在此处请注意,高效的压缩是使 RON 和 Swarm 成为可行技术的关键。压缩减少了元数据开销。
四个 UUID 的特定组合组成一个操作(简称 ops),每个 UUID 分别对应类型、对象、事件和值。几个操作组成对象的状态或变更,我们称之为帧。
特殊的 RON ops 用于协议握手和帧头(帧的元数据)。这些操作具有特殊的意义,通常省略了操作中通常包含的一些元数据(例如,握手查询没有时间戳)。