35 个不稳定版本
0.29.1 | 2024 年 5 月 14 日 |
---|---|
0.28.0 | 2023 年 9 月 12 日 |
0.27.1 | 2023 年 3 月 17 日 |
0.24.0 | 2022 年 8 月 4 日 |
0.12.2 | 2019 年 3 月 29 日 |
#40 在 Rust 模式
242,460 每月下载量
在 659 个 crate 中使用 (直接使用 15 个)
325KB
7.5K SLoC
字典树
基于 Apache2 许可证的 Base-16 Modified Merkle Tree ("Trie") 数据结构的泛型实现。
实现有两种格式
- Trie DB (
trie-db
crate),可以与后端数据库结合使用,提供可持久化的字典树结构,其内容可以修改,且其根哈希可以高效重新计算。 - Trie Root (
trie-root
crate),提供了一种闭式函数,该函数接受键和值的枚举,并提供一个完全在内存和闭式中计算出的根。
单独的 Trie Hash 可以通过禁用其(默认的)std
特性在 no_std
构建中使用。
除此之外,还提供了一些支持 crate
hash-db
crate,用于提供Hasher
(用于所有可以生成加密哈希的事物)和HashDB
(用于可以将字节数组推入其中,并根据其哈希检索它们的数据库)。适用于no_std
,但在这种情况下将仅提供Hasher
。memory-db
crate,包含MemoryDB
,这是一个使用内存映射实现的HashDB
。hash256-std-hasher
crate,这是一个用于 32 字节键的std::hash::Hasher
实现。对于构建MemoryDB
的HashMap
非常有用。
还有三个仅用于测试的 crate
keccak-hasher
crate,这是一个基于 Keccak-256 算法的Hasher
实现。reference-trie
crate,这是一个简单字典树的实现;它提供了NodeCodec
和TrieStream
实现,使其适用于 Trie DB 和 Trie Root。trie-standardmap
crate,一个用于创建满足特定质量要求的大型测试数据集的关键字/值生成工具。trie-bench
crate,用于对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
:
trie接口和实现。
依赖项
~165KB