{"id":25338283,"url":"https://github.com/hoxxep/rapidhash","last_synced_at":"2026-02-06T00:08:21.033Z","repository":{"id":257807396,"uuid":"862040919","full_name":"hoxxep/rapidhash","owner":"hoxxep","description":"An extremely fast, high-quality, non-cryptographic hash function. Platform independent compile-time and run-time hashing in rust.","archived":false,"fork":false,"pushed_at":"2026-01-11T00:12:31.000Z","size":1186,"stargazers_count":189,"open_issues_count":3,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2026-01-11T08:14:22.421Z","etag":null,"topics":["algorithms","compile-time","hash","hashing","rust"],"latest_commit_sha":null,"homepage":"https://crates.io/crates/rapidhash","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/hoxxep.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-09-23T23:50:29.000Z","updated_at":"2026-01-11T00:12:17.000Z","dependencies_parsed_at":null,"dependency_job_id":"e1c5994d-2c9e-46e9-88f0-5cba7b5b9b5e","html_url":"https://github.com/hoxxep/rapidhash","commit_stats":null,"previous_names":["hoxxep/rapidhash"],"tags_count":15,"template":false,"template_full_name":null,"purl":"pkg:github/hoxxep/rapidhash","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hoxxep%2Frapidhash","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hoxxep%2Frapidhash/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hoxxep%2Frapidhash/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hoxxep%2Frapidhash/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hoxxep","download_url":"https://codeload.github.com/hoxxep/rapidhash/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hoxxep%2Frapidhash/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29140051,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-05T23:14:48.546Z","status":"ssl_error","status_checked_at":"2026-02-05T23:14:35.724Z","response_time":65,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["algorithms","compile-time","hash","hashing","rust"],"created_at":"2025-02-14T07:00:17.593Z","updated_at":"2026-02-06T00:08:21.026Z","avatar_url":"https://github.com/hoxxep.png","language":"Rust","funding_links":[],"categories":["Rust"],"sub_categories":[],"readme":"# rapidhash – portable rust hashing\n\nA rust implementation of [rapidhash](https://github.com/Nicoshev/rapidhash), the official successor to [wyhash](https://github.com/wangyi-fudan/wyhash).\n\n- **High quality**, the fastest hash passing all tests in the SMHasher and SMHasher3 benchmarks. Collision-based study showed a collision probability that's close to ideal.\n- **Very fast**, the fastest passing hash in SMHasher3. Significant peak throughput improvement over wyhash and foldhash. Fastest platform-independent hash. Fastest const hash.\n- **Platform independent and no-std compatible**, works on all platforms, no dependency on machine-specific vectorized or cryptographic hardware instructions. Optimized for both AMD64 and AArch64.\n- **Official successor to wyhash** with improved speed, quality, and compatibility.\n- **Run-time and compile-time hashing** as the hash implementation is fully `const`.\n- **Idiomatic** `std::hash::Hasher` compatible hasher for `HashMap` and `HashSet`.\n- **Non-cryptographic** hash function that's \"minimally DoS resistant\" in the same manner as foldhash.\n- **Streamable** hashing for large files and other streams.\n- **CLI tool** for convenient hashing of files or stdin.\n\n**Sponsored by [Upon](https://uponvault.com?utm_source=github\u0026utm_campaign=rapidhash)**, inheritance vaults for your digital life. Ensure your family can access your devices, accounts, and assets when the unexpected happens.\n\n## Usage\n### In-Memory Hashing\nFollowing rust's `std::hash` traits, the underlying hash function may change between minor versions, and is only suitable for in-memory hashing. These types are optimized for speed and minimal DoS resistance, available in the `rapidhash::fast` and `rapidhash::quality` flavours.\n\n- `RapidHasher`: A `std::hash::Hasher` compatible hasher that uses the rapidhash algorithm.\n- `RandomState`: A `std::hash::BuildHasher` for initializing the hasher with a random seed and secrets.\n- `GlobalState`: A `std::hash::BuildHasher` for initializing the hasher with global seed and secrets, randomized once per process.\n- `SeedableState`: A `std::hash::BuildHasher` for initializing the hasher with a custom seed and secrets.\n- `RapidHashMap` and `RapidHashSet`: Helper types for using `fast::RandomState` with `HashMap` and `HashSet`.\n\n```rust\nuse rapidhash::RapidHashMap;\n\n// A HashMap using RapidHasher for fast in-memory hashing.\nlet mut map = RapidHashMap::default();\nmap.insert(\"key\", \"value\");\n```\n\n```rust\nuse std::hash::BuildHasher;\nuse rapidhash::quality::SeedableState;\n\n// Using the RapidHasher directly for in-memory hashing.\nlet hasher = SeedableState::fixed();\nassert_eq!(hasher.hash_one(b\"hello world\"), 3348275917668072623);\n```\n\n### Portable Hashing\nFull compatibility with C++ rapidhash algorithms, methods are provided for all rapidhash V1, V2, and V3 (with micro/nano) variants. These are stable functions whose output will not change between crate versions.\n\n```rust\nuse std::hash::{BuildHasher, Hasher};\nuse rapidhash::v3::{rapidhash_v3_seeded, rapidhash_v3_file_seeded, RapidSecrets};\n\n/// Set your global hashing secrets.\n/// - For HashDoS resistance, choose a randomized secret.\n/// - For C++ compatibility, use the `seed_cpp` method or `DEFAULT_RAPID_SECRETS`.\nconst RAPID_SECRETS: RapidSecrets = RapidSecrets::seed(0x123456);\n\n/// A helper function for your chosen rapidhash version and secrets.\n#[inline]\npub fn rapidhash(data: \u0026[u8]) -\u003e u64 {\n    rapidhash_v3_seeded(data, \u0026RAPID_SECRETS)\n}\n\n/// Hash streaming data with the rapidhash V3 algorithm.\npub fn rapidhash_stream\u003cR: std::io::Read\u003e(reader: R) -\u003e std::io::Result\u003cu64\u003e {\n    rapidhash_v3_file_seeded(reader, \u0026RAPID_SECRETS)\n}\n\nassert_eq!(rapidhash(b\"hello world\"), 11653223729569656151);\nassert_eq!(rapidhash_stream(std::io::Cursor::new(b\"hello world\")).unwrap(), 11653223729569656151);\n```\n\nPlease see the [`portable-hash` crate](https://github.com/hoxxep/portable-hash?tab=readme-ov-file#whats-wrong-with-the-stdhash-traits) for why using the standard library hashing traits is not recommended for portable hashing. Rapidhash is planning to implement the `PortableHash` and `PortableHasher` traits in a future release.\n\n### CLI\nRapidhash can also be installed as a CLI tool to hash files or stdin. This is not a cryptographic hash, but should be much faster than cryptographic hashes. This is fully compatible with the C++ rapidhash V1, V2, and V3 algorithms.\n\nOutput is the decimal string of the `u64` hash value.\n\n```shell\n# install\ncargo install rapidhash\n\n# hash a file (output: 8543579700415218186)\nrapidhash --v3 example.txt\n\n# hash stdin (output: 8543579700415218186)\necho \"example\" | rapidhash --v3\n```\n\n## Features\n\n- `default`: `std`\n- `std`: Enables the `RapidHashMap` and `RapidHashSet` helper types.\n- `rand`: Enables using the `rand` library to more securely initialize `RandomState`. Includes the `rand` crate dependency.\n- `rng`: Enables `RapidRng`, a fast, non-cryptographic PRNG based on rapidrng. Includes the `rand_core` crate dependency.\n- `unsafe`: Uses unsafe pointer arithmetic to skip some unnecessary bounds checks for a small 3-4% performance improvement.\n- `nightly`: Enable nightly-only features for even faster hashing, such as overriding `Hasher::write_str` and likely hints.\n\n## Benchmarks\n\nIn our benchmarking, rapidhash is one of the fastest general-purpose non-cryptographic hash functions. It places second to gxhash on some benchmarks, but gxhash is not portable, requires AES instructions to compile, and its main advantage is hashing string types. Between rapidhash, gxhash, and the default siphasher, we see little reason to use other hash functions on modern platforms without specifically benchmarking them for your workload and platform.\n\n![Hashing Benchmarks](https://github.com/hoxxep/rapidhash/raw/master/docs/bench_hash_aarch64_apple_m1_max.svg)\n\nRapidhash uses raw throughput benchmarks (the charts) to measure performance over various input sizes, and the [foldhash benchmark suite](https://github.com/orlp/foldhash?tab=readme-ov-file#performance) (the txt tables) to measure workloads that are closer to real-world usage. The foldhash suite benchmarks hashers by measuring raw hash throughput, hashmap lookup miss, hashmap lookup hit, and hashmap insertion performance on a wide variety of commonly hashed types.\n\nThe benchmarks have been compiled with and without `-C target-cpu=native` on a variety of platforms to demonstrate rapidhash's strong all-round performance. The full results are available in the [docs folder](https://github.com/hoxxep/rapidhash/tree/master/docs) and are summarised below.\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eaarch64 Apple M1 Max\u003c/strong\u003e\u003c/summary\u003e\n\n```text\n┌────────────────┬─────────────┬─────────────┬────────────┬────────────┬────────┬───────┬─────────┐\n│         metric ┆ rapidhash-f ┆ rapidhash-q ┆ foldhash-f ┆ foldhash-q ┆ fxhash ┆ ahash ┆ siphash │\n╞════════════════╪═════════════╪═════════════╪════════════╪════════════╪════════╪═══════╪═════════╡\n│       avg_rank ┆        2.11 ┆        3.53 ┆       2.84 ┆       4.62 ┆   2.88 ┆  5.05 ┆    6.97 │\n│ geometric_mean ┆        4.29 ┆        4.82 ┆       4.83 ┆       5.24 ┆   5.50 ┆  5.94 ┆   22.17 │\n└────────────────┴─────────────┴─────────────┴────────────┴────────────┴────────┴───────┴─────────┘\n```\n\n![Hashing Benchmarks](https://github.com/hoxxep/rapidhash/raw/master/docs/bench_hash_aarch64_apple_m1_max.svg)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eaarch64 Apple M1 Max (target-cpu=native)\u003c/strong\u003e\u003c/summary\u003e\n\n```text\n┌────────────────┬─────────────┬─────────────┬────────────┬────────────┬────────┬────────┬───────┬─────────┐\n│         metric ┆ rapidhash-f ┆ rapidhash-q ┆ foldhash-f ┆ foldhash-q ┆ gxhash ┆ fxhash ┆ ahash ┆ siphash │\n╞════════════════╪═════════════╪═════════════╪════════════╪════════════╪════════╪════════╪═══════╪═════════╡\n│       avg_rank ┆        2.23 ┆        3.94 ┆       3.30 ┆       5.08 ┆   4.69 ┆   3.16 ┆  5.64 ┆    7.97 │\n│ geometric_mean ┆        4.25 ┆        4.79 ┆       4.79 ┆       5.19 ┆   4.93 ┆   5.48 ┆  5.91 ┆   21.99 │\n└────────────────┴─────────────┴─────────────┴────────────┴────────────┴────────┴────────┴───────┴─────────┘\n```\n\n![Hashing Benchmarks](https://github.com/hoxxep/rapidhash/raw/master/docs/bench_hash_aarch64_apple_m1_max_native.svg)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eaarch64 AWS Graviton3\u003c/strong\u003e\u003c/summary\u003e\n\n```text\n┌────────────────┬─────────────┬─────────────┬────────────┬────────────┬────────┬───────┬─────────┐\n│         metric ┆ rapidhash-f ┆ rapidhash-q ┆ foldhash-f ┆ foldhash-q ┆ fxhash ┆ ahash ┆ siphash │\n╞════════════════╪═════════════╪═════════════╪════════════╪════════════╪════════╪═══════╪═════════╡\n│       avg_rank ┆        2.27 ┆        3.88 ┆       3.08 ┆       4.66 ┆   2.11 ┆  5.05 ┆    6.97 │\n│ geometric_mean ┆        7.82 ┆        9.03 ┆       8.53 ┆       9.66 ┆   8.02 ┆ 10.98 ┆   29.31 │\n└────────────────┴─────────────┴─────────────┴────────────┴────────────┴────────┴───────┴─────────┘\n```\n\n![Hashing Benchmarks](https://github.com/hoxxep/rapidhash/raw/master/docs/bench_hash_aarch64_aws_graviton3.svg)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eaarch64 AWS Graviton3 (target-cpu=native)\u003c/strong\u003e\u003c/summary\u003e\n\n```text\n┌────────────────┬─────────────┬─────────────┬────────────┬────────────┬────────┬────────┬───────┬─────────┐\n│         metric ┆ rapidhash-f ┆ rapidhash-q ┆ foldhash-f ┆ foldhash-q ┆ gxhash ┆ fxhash ┆ ahash ┆ siphash │\n╞════════════════╪═════════════╪═════════════╪════════════╪════════════╪════════╪════════╪═══════╪═════════╡\n│       avg_rank ┆        2.59 ┆        4.20 ┆       3.38 ┆       5.28 ┆   4.09 ┆   2.50 ┆  5.98 ┆    7.97 │\n│ geometric_mean ┆        7.84 ┆        8.97 ┆       8.56 ┆       9.68 ┆   8.59 ┆   8.15 ┆ 11.16 ┆   32.59 │\n└────────────────┴─────────────┴─────────────┴────────────┴────────────┴────────┴────────┴───────┴─────────┘\n```\n\n![Hashing Benchmarks](https://github.com/hoxxep/rapidhash/raw/master/docs/bench_hash_aarch64_aws_graviton3_native.svg)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003ex86_64 AMD EPYC 9R14\u003c/strong\u003e\u003c/summary\u003e\n\n```text\n┌────────────────┬─────────────┬─────────────┬────────────┬────────────┬────────┬───────┬─────────┐\n│         metric ┆ rapidhash-f ┆ rapidhash-q ┆ foldhash-f ┆ foldhash-q ┆ fxhash ┆ ahash ┆ siphash │\n╞════════════════╪═════════════╪═════════════╪════════════╪════════════╪════════╪═══════╪═════════╡\n│       avg_rank ┆        2.05 ┆        3.75 ┆       2.81 ┆       4.42 ┆   3.09 ┆  4.91 ┆    6.97 │\n│ geometric_mean ┆        4.67 ┆        5.38 ┆       5.27 ┆       5.99 ┆   6.13 ┆  6.50 ┆   23.66 │\n└────────────────┴─────────────┴─────────────┴────────────┴────────────┴────────┴───────┴─────────┘\n```\n\n![Hashing Benchmarks](https://github.com/hoxxep/rapidhash/raw/master/docs/bench_hash_x86_64_amd_epyc_9R14.svg)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003ex86_64 AMD EPYC 9R14 (target-cpu=native)\u003c/strong\u003e\u003c/summary\u003e\n\n```text\n┌────────────────┬─────────────┬─────────────┬────────────┬────────────┬────────┬────────┬───────┬─────────┐\n│         metric ┆ rapidhash-f ┆ rapidhash-q ┆ foldhash-f ┆ foldhash-q ┆ gxhash ┆ fxhash ┆ ahash ┆ siphash │\n╞════════════════╪═════════════╪═════════════╪════════════╪════════════╪════════╪════════╪═══════╪═════════╡\n│       avg_rank ┆        2.56 ┆        4.36 ┆       3.45 ┆       5.38 ┆   4.31 ┆   3.36 ┆  4.61 ┆    7.97 │\n│ geometric_mean ┆        4.68 ┆        5.34 ┆       5.24 ┆       5.91 ┆   5.01 ┆   5.98 ┆  5.63 ┆   25.75 │\n└────────────────┴─────────────┴─────────────┴────────────┴────────────┴────────┴────────┴───────┴─────────┘\n```\n\n![Hashing Benchmarks](https://github.com/hoxxep/rapidhash/raw/master/docs/bench_hash_x86_64_amd_epyc_9R14_native.svg)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003ex86_64 Intel Xeon Platinum 8488C\u003c/strong\u003e\u003c/summary\u003e\n\n```text\n┌────────────────┬─────────────┬─────────────┬────────────┬────────────┬────────┬───────┬─────────┐\n│         metric ┆ rapidhash-f ┆ rapidhash-q ┆ foldhash-f ┆ foldhash-q ┆ fxhash ┆ ahash ┆ siphash │\n╞════════════════╪═════════════╪═════════════╪════════════╪════════════╪════════╪═══════╪═════════╡\n│       avg_rank ┆        1.86 ┆        3.83 ┆       2.86 ┆       4.50 ┆   2.95 ┆  5.03 ┆    6.97 │\n│ geometric_mean ┆        4.52 ┆        5.18 ┆       4.95 ┆       5.55 ┆   5.67 ┆  6.33 ┆   20.24 │\n└────────────────┴─────────────┴─────────────┴────────────┴────────────┴────────┴───────┴─────────┘\n```\n\n![Hashing Benchmarks](https://github.com/hoxxep/rapidhash/raw/master/docs/bench_hash_x86_64_intel_xeon_8488c.svg)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003ex86_64 Intel Xeon Platinum 8488C (target-cpu=native)\u003c/strong\u003e\u003c/summary\u003e\n\n```text\n┌────────────────┬─────────────┬─────────────┬────────────┬────────────┬────────┬────────┬───────┬─────────┐\n│         metric ┆ rapidhash-f ┆ rapidhash-q ┆ foldhash-f ┆ foldhash-q ┆ gxhash ┆ fxhash ┆ ahash ┆ siphash │\n╞════════════════╪═════════════╪═════════════╪════════════╪════════════╪════════╪════════╪═══════╪═════════╡\n│       avg_rank ┆        2.38 ┆        4.69 ┆       3.52 ┆       5.30 ┆   4.08 ┆   3.39 ┆  4.69 ┆    7.97 │\n│ geometric_mean ┆        4.46 ┆        5.09 ┆       4.88 ┆       5.42 ┆   4.73 ┆   5.58 ┆  5.26 ┆   21.34 │\n└────────────────┴─────────────┴─────────────┴────────────┴────────────┴────────┴────────┴───────┴─────────┘\n```\n\n![Hashing Benchmarks](https://github.com/hoxxep/rapidhash/raw/master/docs/bench_hash_x86_64_intel_xeon_8488c_native.svg)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eBenchmark notes\u003c/strong\u003e\u003c/summary\u003e\n\n- Hash throughput does not measure hash \"quality\", and many of the benchmarked functions fail the [SMHasher3 hash quality benchmarks](https://gitlab.com/fwojcik/smhasher3). Rapidhash is the fastest hash to pass all quality benchmarks. Hash quality affects hashmap performance, as well as algorithms that benefit from high quality hash functions such as HyperLogLog and MinHash.\n- **Comparison to foldhash**: Rapidhash uses the same integer buffer construction as foldhash, but is notably faster when hashing strings by making use of the rapidhash algorithm. Rapidhash also offers portable and streaming hash flavours.\n- **Comparison to gxhash**: gxhash achieves its high throughput by using AES instructions and consistently outperforms the other accelerated hashers (ahash, th1a, xxhash3_64). It's a great hash function, but is not a portable hash function, requiring `target-cpu=native` or specific feature flags to compile. Gxhash is a great choice for applications that can guarantee the availability of AES instructions and mostly hash strings, but rapidhash may be preferred for hashing tuples and structs, or by libraries that aim to support a wide range of platforms.\n- The default rust hasher (SipHasher) unexpectedly appears to run consistently faster _without_ `target-cpu=native` on various x86 and ARM chips.\n- Benchmark your own use case, with your real world dataset! We suggest experimenting with different hash functions to see which one works best for your use case. Rapidhash is great for fast general-purpose hashing in libraries and applications that only need minimal DoS resistance, but certain hashers will outperform for specific use cases.\n- We recommend using `lto = \"fat\"` and `codegen-units = 1` in your `Cargo.toml` release and bench profiles to ensure consistent inlining, application performance, and benchmarking results. For example:\n    ```toml\n    [profile.release]\n    opt-level = 3\n    lto = \"fat\"\n    codegen-units = 1\n    ```\n\n\u003c/details\u003e\n\n## Minimal DoS Resistance\n\nRapidhash is a keyed hash function and the rust implementation deviates from its C++ counterpart by also randomising the secrets array. The algorithm primarily relies on the same 128-bit folded multiply mixing step used by foldhash and ahash's fallback algorithm. It aims to be immune to length extension and re-ordering attacks.\n\nWe believe rapidhash is a minimally DoS resistant hash function, such that a non-interactive attacker cannot trivially create collisions if they do not know the seed or secrets. The adverb \"minimally\" is used to describe that rapidhash is not a cryptographic hash, it is possible to construct collisions if the seed or secrets are known, and it may be possible for an interactive attacker to learn the seed by observing hash outputs or application response times over a large number of inputs.\n\nProvided rapidhash has been instantiated through `RandomState` or `RapidSecrets` using a randomized secret seed, we believe rapidhash is minimally resistant to hash DoS attacks.\n\n## Rapidhash Versioning\n\n### Portable Hashing\nC++ compatibility is presented in `rapidhash::v1`, `rapidhash::v2`, and `rapidhash::v3` modules. The output for these is guaranteed to be stable between major crate versions.\n\nRapidhash V3 is the recommended, fastest, and most recent version of the hash. Streaming is only possible with the rapidhash V3 algorithm. Others are provided for backwards compatibility.\n\n### In-Memory Hashing\nRust hashing traits (`RapidHasher`, `RandomState`, etc.) are implemented in `rapidhash::fast`, `rapidhash::quality`, and `rapidhash::inner` modules. These are not guaranteed to give a consistent hash output between platforms, compiler versions, or crate versions as the rust `Hasher` trait [is not suitable](https://github.com/hoxxep/portable-hash/?tab=readme-ov-file#whats-wrong-with-the-stdhash-traits) for portable hashing.\n\n- Use `rapidhash::fast` for optimal hashing speed with a slightly lower hash quality. Best for most datastructures such as HashMap and HashSet usage.\n- Use `rapidhash::quality` where statistical hash quality is the priority, such as HyperLogLog or MinHash algorithms.\n- Use `rapidhash::inner` to set advanced parameters to configure the hash function specifically to your use case.\n\n## Crate Versioning\nThe minimum supported Rust version (MSRV) is 1.71.0.\n\nThe rapidhash crate follows the following versioning scheme:\n- Major for breaking API changes and MSRV version bumps or any changes to `rapidhash_v*` method output.\n- Minor for significant API additions/deprecations or any changes to `RapidHasher` output.\n- Patch for bug fixes and performance improvements.\n\nPortable hash outputs (eg. `rapidhash_v3`) are guaranteed to be stable. In-memory hash outputs (eg. `RapidHasher`) may change between minor versions to allow us to freely improve performance.\n\n## License and Acknowledgements\nThis project is licensed under both the MIT and Apache-2.0 licenses. You are free to choose either license.\n\nWith thanks to [Nicolas De Carli](https://github.com/Nicoshev) for the original [rapidhash](https://github.com/Nicoshev/rapidhash) C++ implementation, which is licensed under the [MIT License](https://github.com/Nicoshev/rapidhash/blob/master/LICENSE).\n\nWith thanks to [Orson Peters](https://github.com/orlp) for his work on [foldhash](https://github.com/orlp/foldhash), which inspired much of the integer hashing optimisations in this crate. Some of the RapidHasher string hashing [optimisations](https://github.com/orlp/foldhash/pull/35) have also made their way back into foldhash as a thanks.\n\nWith thanks to [Justin Bradford](https://github.com/jabr) for letting us use the rapidhash crate name 🍻\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhoxxep%2Frapidhash","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhoxxep%2Frapidhash","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhoxxep%2Frapidhash/lists"}