{"id":13484753,"url":"https://github.com/rust-lang/hashbrown","last_synced_at":"2025-05-13T15:04:42.368Z","repository":{"id":33215505,"uuid":"155119796","full_name":"rust-lang/hashbrown","owner":"rust-lang","description":"Rust port of Google's SwissTable hash map","archived":false,"fork":false,"pushed_at":"2025-04-30T22:12:11.000Z","size":6319,"stargazers_count":2633,"open_issues_count":90,"forks_count":298,"subscribers_count":35,"default_branch":"master","last_synced_at":"2025-05-13T00:02:53.530Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://rust-lang.github.io/hashbrown","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/rust-lang.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2018-10-28T21:58:58.000Z","updated_at":"2025-05-11T23:36:52.000Z","dependencies_parsed_at":"2023-01-16T22:45:27.399Z","dependency_job_id":"57717345-e595-47ed-82ea-05ead54e782b","html_url":"https://github.com/rust-lang/hashbrown","commit_stats":{"total_commits":732,"total_committers":110,"mean_commits":6.654545454545454,"dds":0.7172131147540983,"last_synced_commit":"25365fc3cbec606b86a2a2251df246d6062eea67"},"previous_names":[],"tags_count":48,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rust-lang%2Fhashbrown","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rust-lang%2Fhashbrown/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rust-lang%2Fhashbrown/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rust-lang%2Fhashbrown/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rust-lang","download_url":"https://codeload.github.com/rust-lang/hashbrown/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253843215,"owners_count":21972873,"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-07-31T17:01:32.504Z","updated_at":"2025-05-13T15:04:42.312Z","avatar_url":"https://github.com/rust-lang.png","language":"Rust","funding_links":[],"categories":["Rust"],"sub_categories":[],"readme":"hashbrown\n=========\n\n[![Build Status](https://github.com/rust-lang/hashbrown/actions/workflows/rust.yml/badge.svg)](https://github.com/rust-lang/hashbrown/actions)\n[![Crates.io](https://img.shields.io/crates/v/hashbrown.svg)](https://crates.io/crates/hashbrown)\n[![Documentation](https://docs.rs/hashbrown/badge.svg)](https://docs.rs/hashbrown)\n[![Rust](https://img.shields.io/badge/rust-1.65.0%2B-blue.svg?maxAge=3600)](https://github.com/rust-lang/hashbrown)\n\nThis crate is a Rust port of Google's high-performance [SwissTable] hash\nmap, adapted to make it a drop-in replacement for Rust's standard `HashMap`\nand `HashSet` types.\n\nThe original C++ version of SwissTable can be found [here], and this\n[CppCon talk] gives an overview of how the algorithm works.\n\nSince Rust 1.36, this is now the `HashMap` implementation for the Rust standard\nlibrary. However you may still want to use this crate instead since it works\nin environments without `std`, such as embedded systems and kernels.\n\n[SwissTable]: https://abseil.io/blog/20180927-swisstables\n[here]: https://github.com/abseil/abseil-cpp/blob/master/absl/container/internal/raw_hash_set.h\n[CppCon talk]: https://www.youtube.com/watch?v=ncHmEUmJZf4\n\n## [Change log](CHANGELOG.md)\n\n## Features\n\n- Drop-in replacement for the standard library `HashMap` and `HashSet` types.\n- Uses [foldhash](https://github.com/orlp/foldhash) as the default hasher, which is much faster than SipHash.\n  However, foldhash does *not provide the same level of HashDoS resistance* as SipHash, so if that is important to you, you might want to consider using a different hasher.\n- Around 2x faster than the previous standard library `HashMap`.\n- Lower memory usage: only 1 byte of overhead per entry instead of 8.\n- Compatible with `#[no_std]` (but requires a global allocator with the `alloc` crate).\n- Empty hash maps do not allocate any memory.\n- SIMD lookups to scan multiple hash entries in parallel.\n\n## Usage\n\nAdd this to your `Cargo.toml`:\n\n```toml\n[dependencies]\nhashbrown = \"0.15\"\n```\n\nThen:\n\n```rust\nuse hashbrown::HashMap;\n\nlet mut map = HashMap::new();\nmap.insert(1, \"one\");\n```\n## Flags\nThis crate has the following Cargo features:\n\n- `nightly`: Enables nightly-only features including: `#[may_dangle]`.\n- `serde`: Enables serde serialization support.\n- `rayon`: Enables rayon parallel iterator support.\n- `equivalent`: Allows comparisons to be customized with the `Equivalent` trait. (enabled by default)\n- `raw-entry`: Enables access to the deprecated `RawEntry` API.\n- `inline-more`: Adds inline hints to most functions, improving run-time performance at the cost\n  of compilation time. (enabled by default)\n- `default-hasher`: Compiles with foldhash as default hasher. (enabled by default)\n- `allocator-api2`: Enables support for allocators that support `allocator-api2`. (enabled by default)\n\n## License\n\nLicensed under either of:\n\n * Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or https://www.apache.org/licenses/LICENSE-2.0)\n * MIT license ([LICENSE-MIT](LICENSE-MIT) or https://opensource.org/licenses/MIT)\n\nat your option.\n\n### Contribution\n\nUnless you explicitly state otherwise, any contribution intentionally submitted\nfor inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any\nadditional terms or conditions.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frust-lang%2Fhashbrown","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frust-lang%2Fhashbrown","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frust-lang%2Fhashbrown/lists"}