https://github.com/bigbuildbench/paritytech_trie

https://github.com/bigbuildbench/paritytech_trie

Science Score: 13.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.8%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

Basic Info
  • Host: GitHub
  • Owner: BigBuildBench
  • License: apache-2.0
  • Language: Rust
  • Default Branch: master
  • Size: 1.94 MB
Statistics
  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created over 1 year ago · Last pushed over 1 year ago
Metadata Files
Readme Contributing License Codeowners

README.md

Build Status

Trie

A generic implementation of the Base-16 Modified Merkle Tree ("Trie") data structure, provided under the Apache2 license.

The implementation comes in two formats:

  • Trie DB (trie-db crate) which can be combined with a backend database to provide a persistent trie structure whose contents can be modified and whose root hash is recalculated efficiently.
  • Trie Root (trie-root crate) which provides a closed-form function that accepts a enumeration of keys and values and provides a root calculated entirely in-memory and closed form.

Trie Hash alone is able to be used in no_std builds by disabling its (default) std feature.

In addition to these, several support crates are provided:

  • hash-db crate, used to provide Hasher (trait for all things that can make cryptographic hashes) and HashDB (trait for databases that can have byte slices pushed into them and allow for them to be retrieved based on their hash). Suitable for no_std, though in this case will only provide Hasher.
  • memory-db crate, contains MemoryDB, an implementation of a HashDB using only in in-memory map.
  • hash256-std-hasher crate, an implementation of a std::hash::Hasher for 32-byte keys that have already been hashed. Useful to build the backing HashMap for MemoryDB.

There are also three crates used only for testing:

  • keccak-hasher crate, an implementation of Hasher based on the Keccak-256 algorithm.
  • reference-trie crate, an implementation of a simple trie format; this provides both a NodeCodec and TrieStream implementation making it suitable for both Trie DB and Trie Root.
  • trie-standardmap crate, a key/value generation tool for creating large test datasets to specific qualities.
  • trie-bench crate, a comprehensive standard benchmarking tool for trie format implementations. Works using the criterion project so benchmarking can be done with the stable rustc branch.

In the spirit of all things Rust, this aims to be reliable, secure, and high performance.

Used in the Substrate project. If you use this crate and would your project listed here, please contact us.

Buidling &c.

Building is done through cargo, as you'd expect.

Building

cargo build --all

Testing

cargo test --all

Benchmarking

cargo bench --all

Building in no_std

cargo build --no-default-features

Owner

  • Name: BigBuildBench
  • Login: BigBuildBench
  • Kind: organization

abbr. B3, benchmarking the repo-level understanding capability of your LLMs by reconstructing project build-file.

GitHub Events

Total
  • Pull request event: 1
  • Create event: 5
Last Year
  • Pull request event: 1
  • Create event: 5

Dependencies

.github/workflows/rust.yml actions
  • actions-rs/cargo v1 composite
  • actions-rs/toolchain v1 composite
  • actions/checkout v4 composite
Cargo.toml cargo
hash-db/Cargo.toml cargo
hash256-std-hasher/Cargo.toml cargo
  • criterion 0.5.1 development
memory-db/Cargo.toml cargo
  • criterion 0.5.1 development
test-support/keccak-hasher/Cargo.toml cargo
test-support/reference-trie/Cargo.toml cargo
  • criterion 0.5.1 development
test-support/trie-bench/Cargo.toml cargo
test-support/trie-standardmap/Cargo.toml cargo
trie-db/Cargo.toml cargo
trie-db/fuzz/Cargo.toml cargo
trie-db/test/Cargo.toml cargo
  • array-bytes 6.0.0 development
trie-eip1186/Cargo.toml cargo
trie-eip1186/test/Cargo.toml cargo
trie-root/Cargo.toml cargo
trie-root/test/Cargo.toml cargo