17 个版本 (重大变更)

0.29.1 2023 年 3 月 17 日
0.26.0 2022 年 8 月 4 日
0.25.0 2022 年 2 月 4 日
0.23.1 2021 年 6 月 24 日
0.12.2 2019 年 3 月 29 日

#625神奇豆子

Download history 1642/week @ 2024-03-25 2038/week @ 2024-04-01 1510/week @ 2024-04-08 1642/week @ 2024-04-15 1784/week @ 2024-04-22 1595/week @ 2024-04-29 1337/week @ 2024-05-06 1745/week @ 2024-05-13 1917/week @ 2024-05-20 1625/week @ 2024-05-27 1436/week @ 2024-06-03 1269/week @ 2024-06-10 1378/week @ 2024-06-17 1635/week @ 2024-06-24 1383/week @ 2024-07-01 1490/week @ 2024-07-08

5,945 每月下载量
5 个 crate 中使用 (2 个直接)

Apache-2.0

415KB
10K SLoC

Build Status

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 格式实现;它提供了 NodeCodecTrieStream 实现,使其适用于 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