3 个版本 (破坏性更新)

0.11.0 2024 年 6 月 5 日
0.10.0 2024 年 6 月 5 日
0.9.0 2024 年 3 月 26 日
0.2.0 2023 年 8 月 7 日

#571 in 数据结构

Download history 2/week @ 2024-04-26 9/week @ 2024-05-10 37/week @ 2024-05-17 47/week @ 2024-05-24 292/week @ 2024-05-31 144/week @ 2024-06-07 104/week @ 2024-06-14 126/week @ 2024-06-21 88/week @ 2024-06-28 76/week @ 2024-07-05 55/week @ 2024-07-12 52/week @ 2024-07-19 43/week @ 2024-07-26 59/week @ 2024-08-02 122/week @ 2024-08-09

291 每月下载量
用于 11 个crate(2 个直接使用)

MIT/ApacheGPL-3.0-or-later

160KB
4K SLoC

协作对象

协作对象是 CRDT 的图。

基本类型

radicle-cob 中找到的基本类型有

  • CollaborativeObject -- 计算对象本身。
  • ObjectId -- 单个协作对象的基于内容地址。
  • TypeName -- 协作对象集合的名称。
  • History -- 对单个协作对象所做的更改的可遍历历史。

CRU 接口(不删除)

操作 CollaborativeObject 的主要入口是使用类似 CRU 的函数

存储

协作对象的存储基于 git 后端。前面提到的所有函数都接受一个 Store 作为参数。该 Store 本身是不同存储能力的累积

资源

createupdate 函数接受一个 Resource。它表示协作对象关联的资源类型,例如软件项目。

历史遍历

一个 CollaborativeObjectHistory — 通过 CollaborativeObject::history 访问 — 拥有一个 History::traverse 方法,该方法提供了一种检查每个 Entry 并构建最终值的方法。

这种遍历也是检索 Entry::authorEntry::resource 以应用任何过滤逻辑的点。例如,某个特定 author 的更改可能非常严重,散布关于 Radicle 的恶毒诽谤。正是在这一点上,可以从遍历的最终产品中过滤掉 actor 的更改。

依赖项

~20MB
~450K SLoC