1个不稳定版本
0.1.0 | 2022年12月28日 |
---|
#35 in #dag
25KB
576 行代码(不包括注释)
daglib
daglib是针对Node类型、Node标识符类型和后端(DAG的存储)的泛型异步DAG库。
状态
实验性。请勿使用。
这是什么?
我的问题是,我想在IPFS/IPLD上实现一个DAG。然而,现有的IPFS/IPLD库并没有提供构建DAG的简单功能。虽然有DAG库,但它们都自行实现了存储功能。我需要一个异步且泛型的后端,以便可以在后端使用IPFS(或任何其他支持异步操作的工具)。因此,这个库应运而生。
此库定义了底层后端的一个简单接口
#[async_trait]
pub trait DagBackend<Id, N>
where N: Node,
Id: NodeId + Send
{
async fn get(&self, id: Id) -> Result<Option<N>>;
async fn put(&mut self, node: N) -> Result<Id>;
}
这就是全部。在这之上,AsyncDag
类型实现了DAG数据结构。
限制
因为这个库最初是为了与IPFS后端一起使用而初始化的,所以它有一些限制
- 它假设你永远不能删除节点。你可以重写DAG,但这并不一定意味着删除节点。
这个列表将在未来扩展。请勿假设它是完整的!
许可证
MPL-2.0
依赖项
~1–1.6MB
~34K SLoC