3 个版本 (破坏性更新)
0.11.0 | 2024 年 6 月 5 日 |
---|---|
0.10.0 |
|
0.9.0 | 2024 年 3 月 26 日 |
0.2.0 | 2023 年 8 月 7 日 |
#571 in 数据结构
291 每月下载量
用于 11 个crate(2 个直接使用)
160KB
4K SLoC
协作对象
协作对象是 CRDT 的图。
基本类型
在 radicle-cob
中找到的基本类型有
CollaborativeObject
-- 计算对象本身。ObjectId
-- 单个协作对象的基于内容地址。TypeName
-- 协作对象集合的名称。History
-- 对单个协作对象所做的更改的可遍历历史。
CRU 接口(不删除)
操作 CollaborativeObject
的主要入口是使用类似 CRU 的函数
存储
协作对象的存储基于 git 后端。前面提到的所有函数都接受一个 Store
作为参数。该 Store
本身是不同存储能力的累积
对象::存储
change::Storage
-- 注意:为了方便,已为git2::Repository
实现了这个。
资源
create
和 update
函数接受一个 Resource
。它表示协作对象关联的资源类型,例如软件项目。
历史遍历
一个 CollaborativeObject
的 History
— 通过 CollaborativeObject::history
访问 — 拥有一个 History::traverse
方法,该方法提供了一种检查每个 Entry
并构建最终值的方法。
这种遍历也是检索 Entry::author
和 Entry::resource
以应用任何过滤逻辑的点。例如,某个特定 author
的更改可能非常严重,散布关于 Radicle 的恶毒诽谤。正是在这一点上,可以从遍历的最终产品中过滤掉 actor
的更改。
依赖项
~20MB
~450K SLoC