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 解析器实现

LGPL-2.1-or-later OR MIT

2.5MB
2K SLoC

Rust 的复制对象表示法 (RON)

RON 是一个用于同步无冲突复制数据类型 (CmRDT) 的协议。文档托管在 docs.rs

与参考实现的不同之处

  1. 尚不支持 UUID 变体。
  2. 只支持 LWW 和 2-Phase 集合。
  3. 缺少握手协议。
  4. 仅发出关闭 RON。

用法

# Cargo.toml
[dependencies]
ron-crdt = "0.4.0"

许可证

本项目采用以下任一许可证:

由您选择。


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 用于协议握手和帧头(帧的元数据)。这些操作具有特殊的意义,通常省略了操作中通常包含的一些元数据(例如,握手查询没有时间戳)。

依赖项