2个版本 (1个稳定版)
100.28.0 | 2024年2月18日 |
---|---|
0.28.0 | 2024年2月18日 |
#279 in 数据库接口
被 2 个Crates使用(通过 reference-trie-fun)
325KB
7.5K SLoC
trie
Apache2许可证下提供的Base-16 Modified Merkle Tree ("Trie")数据结构的泛型实现。
实现有两种格式
- Trie DB (
trie-db
crate),可以与后端数据库结合,提供可修改内容的持久化trie结构,其根哈希可以高效地重新计算。 - Trie Root (
trie-root
crate),提供了一种封闭形式的函数,该函数接受键和值的枚举,并提供完全在内存中计算并封闭形式的根。
仅使用Trie Hash即可在no_std
构建中使用,通过禁用其(默认)std
功能。
除此之外,还提供了一些支持crate
hash-db
crate,用于提供Hasher
(所有可生成加密哈希的事物 trait)和HashDB
(可以将字节切片推入其中,并允许根据其哈希检索的数据库 trait)。适用于no_std
,但在这种情况下将仅提供Hasher
。memory-db
crate,包含MemoryDB
,这是一个使用内存映射实现的HashDB
。hash256-std-hasher
包,是一个针对已经哈希过的32字节密钥的std::hash::Hasher
的实现。它对于构建MemoryDB
的底层HashMap
非常有用。
还有一些仅用于测试的包
keccak-hasher
包,是一个基于Keccak-256算法的Hasher
实现。reference-trie
包,是一个简单trie格式的实现;它提供了NodeCodec
和TrieStream
实现,使其适用于trie DB和trie Root。trie-standardmap
包,是一个用于创建具有特定质量的大型测试数据集的键/值生成工具。trie-bench
包,是一个用于trie格式实现的全面标准基准测试工具。它使用criterion
项目,因此可以使用稳定的rustc分支进行基准测试。
秉承Rust的精神,这个包旨在实现可靠、安全和高性能。
用于 Substrate 项目。如果您使用此包并希望您的项目列在这里,请与我们联系。
构建 &c。
如预期,构建是通过cargo完成的。
构建
cargo build --all
测试
cargo test --all
基准测试
cargo bench --all
在 no_std
中构建
cargo build --no-default-features
依赖项
~165KB