{"id":13671920,"url":"https://github.com/paritytech/trie","last_synced_at":"2025-05-14T04:10:26.237Z","repository":{"id":37514655,"uuid":"150090078","full_name":"paritytech/trie","owner":"paritytech","description":"Base-16 Modified Patricia Merkle Tree (aka Trie)","archived":false,"fork":false,"pushed_at":"2025-03-07T16:53:39.000Z","size":1952,"stargazers_count":264,"open_issues_count":31,"forks_count":70,"subscribers_count":15,"default_branch":"master","last_synced_at":"2025-05-08T00:13:04.181Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/paritytech.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-09-24T11:05:26.000Z","updated_at":"2025-05-03T04:54:36.000Z","dependencies_parsed_at":"2023-12-02T13:30:54.931Z","dependency_job_id":"3d56336c-99e0-4a18-8b66-384f0def4355","html_url":"https://github.com/paritytech/trie","commit_stats":{"total_commits":794,"total_committers":58,"mean_commits":"13.689655172413794","dds":0.7795969773299748,"last_synced_commit":"5137efed3c019a32a9061e93be5ba7c9d06ff8b2"},"previous_names":[],"tags_count":78,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paritytech%2Ftrie","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paritytech%2Ftrie/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paritytech%2Ftrie/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paritytech%2Ftrie/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/paritytech","download_url":"https://codeload.github.com/paritytech/trie/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254047571,"owners_count":22005828,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-02T09:01:22.036Z","updated_at":"2025-05-14T04:10:21.222Z","avatar_url":"https://github.com/paritytech.png","language":"Rust","funding_links":[],"categories":["Rust"],"sub_categories":[],"readme":"[![Build Status](https://github.com/paritytech/trie/actions/workflows/rust.yml/badge.svg)](https://github.com/paritytech/trie/actions)\n# Trie\n\nA generic implementation of the Base-16 Modified Merkle Tree (\"Trie\") data structure,\nprovided under the Apache2 license.\n\nThe implementation comes in two formats:\n\n- Trie DB (`trie-db` crate) which can be combined with a backend database to provide\n   a persistent trie structure whose contents can be modified and whose root hash\n   is recalculated efficiently.\n- Trie Root (`trie-root` crate) which provides a closed-form function that accepts a\n   enumeration of keys and values and provides a root calculated entirely in-memory and\n   closed form.\n\nTrie Hash alone is able to be used in `no_std` builds by disabling its (default)\n`std` feature.\n\nIn addition to these, several support crates are provided:\n\n- `hash-db` crate, used to provide `Hasher` (trait for all things that\n   can make cryptographic hashes) and `HashDB` (trait for databases that can have byte\n   slices pushed into them and allow for them to be retrieved based on their hash).\n   Suitable for `no_std`, though in this case will only provide `Hasher`.\n- `memory-db` crate, contains `MemoryDB`, an implementation of a `HashDB` using only\n   in in-memory map.\n- `hash256-std-hasher` crate, an implementation of a `std::hash::Hasher` for 32-byte\n   keys that have already been hashed. Useful to build the backing `HashMap` for `MemoryDB`.\n\nThere are also three crates used only for testing:\n\n- `keccak-hasher` crate, an implementation of `Hasher` based on the Keccak-256 algorithm.\n- `reference-trie` crate, an implementation of a simple trie format; this provides both\n   a `NodeCodec` and `TrieStream` implementation making it suitable for both Trie DB and\n   Trie Root.\n- `trie-standardmap` crate, a key/value generation tool for creating large test datasets\n   to specific qualities.\n- `trie-bench` crate, a comprehensive standard benchmarking tool for trie format\n   implementations. Works using the `criterion` project so benchmarking can be done with\n   the stable rustc branch.\n\nIn the spirit of all things Rust, this aims to be reliable, secure, and high performance.\n\nUsed in the [Substrate](https://parity.io/substrate) project. If you use this crate and\nwould your project listed here, please contact us.\n\n## Buidling \u0026c.\n\nBuilding is done through cargo, as you'd expect.\n\n### Building\n\n```\ncargo build --all\n```\n\n### Testing\n\n```\ncargo test --all\n```\n\n### Benchmarking\n\n```\ncargo bench --all\n```\n\n### Building in `no_std`\n\n```\ncargo build --no-default-features\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fparitytech%2Ftrie","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fparitytech%2Ftrie","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fparitytech%2Ftrie/lists"}