17 个版本 (重大变更)
0.29.1 | 2023 年 3 月 17 日 |
---|---|
0.26.0 | 2022 年 8 月 4 日 |
0.25.0 | 2022 年 2 月 4 日 |
0.23.1 |
|
0.12.2 | 2019 年 3 月 29 日 |
#625 在 神奇豆子
5,945 每月下载量
在 5 个 crate 中使用 (2 个直接)
415KB
10K SLoC
trie
Base-16 Modified Merkle Tree ("trie") 数据结构的通用实现,在 Apache2 许可下提供。
实现有两种格式
- trie DB (
trie-db
crate),可以与后端数据库结合使用,提供可持久化 trie 结构,其内容可以修改,且其根哈希可以高效地重新计算。 - trie Root (
trie-root
crate),提供了一个闭式函数,它接受键和值的枚举,并提供一个完全在内存中计算并闭式表示的根。
仅 trie Hash 可以通过禁用其(默认)std
功能在 no_std
构建中使用。
除此之外,还提供了一些支持 crate
hash-db
库,用于提供Hasher
(所有可以生成加密散列的事物的特质)和HashDB
(可以将字节数组推入并允许根据其散列检索的数据库特质)。适用于no_std
,但在此情况下,将仅提供Hasher
。memory-db
库,包含MemoryDB
,这是使用内存映射实现的HashDB
。hash256-std-hasher
库,是针对32字节键的已散列键的std::hash::Hasher
实现。对于构建MemoryDB
的后端HashMap
非常有用。
还有三个仅用于测试的 crate
keccak-hasher
库,基于 Keccak-256 算法的Hasher
实现。reference-trie
库,是一个简单的 trie 格式实现;它提供了NodeCodec
和TrieStream
实现,使其适用于 Trie DB 和 Trie Root。trie-standardmap
库,是一个用于创建具有特定质量的大型测试数据集的关键/值生成工具。trie-bench
库,是 trie 格式实现的全面标准基准测试工具。使用criterion
项目工作,因此可以使用稳定的 rustc 分支进行基准测试。
秉承 Rust 的一切精神,这个库旨在实现可靠、安全和高性能。
用于 Substrate 项目。如果您使用此 crate 并希望您的项目在此列出,请与我们联系。
构建 &c。
构建通过 cargo 完成,正如您所期望的那样。
构建
cargo build --all
测试
cargo test --all
基准测试
cargo bench --all
在 no_std
中构建
cargo build --no-default-features
lib.rs
:
流式传输的参考实现。
依赖关系
~4MB
~82K SLoC