NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #1506 most downloaded on crates.io
An extremely fast, high quality, platform-independent hashing algorithm.
Last release 3 months ago
03 Jul 2026
Release timing varies
gaps range from 1 weeks to 5 months
Nearly every release is documented
notes for 23 of 23 stable releases
Nothing withdrawn
no release was ever pulled
2 years old
23 releases · first in 2024
One column per month.
Fix size tests for s390x architectures with 8-byte alignment for u128 by @hoxxep in #101
Full Changelog: v4.5.0...v4.5.1
RandomState on new threads. (https://github.com/hoxxep/rapidhash/pull/102)The rand feature has been deprecated in favor of getrandom_04 and getrandom_03 .
rand feature has been deprecated in favor of getrandom_04 and getrandom_03.rng feature has been deprecated in favor of the rapidrand crate.getrandom_04 feature: opt-in seeding of the hasher seeds and secrets from OS/platform entropy via the getrandom crate, without requiring std nor rand crate. This replaces the rand feature and enables true HashDoS resistance on targets with no ambient entropy or ASLR:
wasm32-wasip1/wasm32-wasip2: enabling the feature is sufficient; entropy comes from the WASI host.wasm32-unknown-unknown (browser/node): additionally requires getrandom's wasm_js backend, enabled by the top-level binary. Building without the backend is a compile error rather than a silent fallback to deterministic seeding.no_std targets with a hardware RNG: register a getrandom custom backend. On targets without atomic pointer support (e.g. thumbv6m-none-eabi), each RandomState draws a fresh random seed per instance, restoring minimal HashDoS resistance where there previously was none.getrandom_03 feature: the same as the getrandom_04 feature, but using getrandom v0.3 to preserve the rapidhash MSRV 1.71.RandomState no longer produces duplicate seeds across threads whose stacks are recycled by the OS. Each thread's seed counter is now initialized from a global thread counter mixed with the process-wide random seed, instead of relying on the (frequently re-used) stack address alone.no_std targets, and targets without atomics.Full Changelog: v4.4.2...v4.5.0
Add 32-bit tests and test fixes by @hoxxep in #94
perf: Mark simple RapidSecrets constructors as inline always by @hoxxep in #84
Full Changelog: v4.4.0...v4.4.1
RapidSecrets constructors as #[inline(always)].get_secrets as #[inline(always)] in seeding.rs.Added v3::RapidStreamHasherV3 , an incremental streaming hasher with a write/finish API that mirrors std::Hasher . It deliberately does not implement
v3::RapidStreamHasherV3, an incremental streaming hasher with a write/finish API that mirrors std::hash::Hasher. It deliberately does not implement Hasher directly, ensuring hash output remains stable and portable across platforms and compiler versions. Multiple calls to write will produce the same hash as a single call to rapidhash_v3 with the concatenated input.rapidhash_v3_file now uses RapidStreamHasherV3 internally, replacing the old ChunkedStreamReader and significantly improving throughput by avoiding redundant buffer copies for large chunks.Full Changelog: v4.3.0...v4.4.0
Derive Debug for RandomState by @anp in #78
Full Changelog: v4.2.2...v4.3.0
Debug on RandomState, GlobalState, and SeedableState. (@anp in #78 and @hoxxep in #79)Symlink license files for rapidhash crate. by @anp in #77
Update rapidhash_v3_file docs for clarity and correctness.
rapidhash_v3_file docs for clarity and correctness.Full Changelog: v4.2.0...v4.2.1
v3::rapidhash_v3_file documentation to better describe the streaming interface.Added GlobalState which initializes a RapidHasher with a global seed and secrets that are randomized once on application start.
GlobalState which initializes a RapidHasher with a global seed and secrets that are randomized once on application start.Full Changelog: v4.1.1...v4.2.0
Fixed docsrs build flags, replacing doc_auto_cfg with doc_cfg .
doc_auto_cfg with doc_cfg. (https://github.com/hoxxep/rapidhash/pull/55)SeedableState::with_seed has been deprecated in favour of SeedableState::custom for better naming and improved warnings in the documentation.
SeedableState::new and SeedableState::custom to create hasher builders with user-defined seeds and secrets.SeedableState::with_seed has been deprecated in favour of SeedableState::custom for better naming and improved warnings in the documentation.They can still be built manually using inner::RandomState if required. The fast:: collection variants have been deprecated to be removed in a future m…
https://github.com/hoxxep/rapidhash/pull/43
rapidhash::v3 micro/nano output change: input lengths 5-7 were mismatching the intended C++ V3 output. The C++ rapidhash V3 has been yanked and re-released as V3 to fix the bug, and this rust implementation will follow. This changes the hash outputs for rapidhash_v3_micro_inline and rapidhash_v3_nano_inline for inputs of size 5, 6, and 7 bytes.RapidBuildHasher renamed and refactored to SeedableState.RapidHasher<'s> new lifetime parameter added to support user-defined secrets via SeedableState.RapidHashMap and RapidHashSet moved to crate top level for convenience. The top level uses the fast:: variants, and the quality:: and inner:: hashmaps have been removed. They can still be built manually using inner::RandomState if required. The fast:: collection variants have been deprecated to be removed in a future major release.nightly feature which improves str hashing performance by omitting the 0xFF suffix write and adds likely/unlikely hints.SeedableState: a hasher builder which can be seeded with fixed or user-defined secrets. This replaces RapidBuildHasher, but still defaults to random seeds. It is slightly slower than RandomState.RapidHasher by eliding extra bounds checks in some cases by using assert_unchecked.first_chunk.Improved RapidHasher small string hashing performance by 1.5-15% depending on the benchmark, by reducing the small string hashing code size and allowi
RapidHasher small string hashing performance by 1.5-15% depending on the benchmark, by reducing the small string hashing code size and allowing the compiler to inline more. Performance was also improved on big-endian platforms by reading native-endian bytes. The portable hashers (rapidhash::v3 etc. modules) are unaffected by this change. #37The V1 and V2 rapidhash_file methods have been deprecated, with a note to use rapidhash::v3 instead. This is because they aren't streaming-compatible…
Big performance improvements, and potentially rust's fastest general-purpose hasher!
FNV with a SPONGE configuration with RapidHasher to improve integer and tuple hashing performance.RandomState removed the with_seed and with_seed_and_static_secrets methods to reduce the struct size. Please raise a GitHub issue if you need a SeededState-style hash builder for the in-memory RapidHasher.RapidSecrets type for all versions to generate seeds and secrets for HashDoS-resistant hashing. This makes generating unique seeds/secrets easier for persistent hashing use cases.
rapidhash::v* portable hashing functions now all take a &RapidSecrets argument as a seed.RapidSecrets::seed_cpp(u64) with your integer seed which will continue to use the default secrets.RapidSecrets::seed(u64) to generate a new seed and secrets.RapidHasher removed the old write_const and finish_const methods as they were unlikely to be used and may cause confusion.rapidhash_v*_inner methods have a new AVALANCHE const argument to control whether they should avalanche the output. Setting this to true will match the default hash output and C++ implementation for the highest quality hashing. Turning off avalanching will reduce the hash quality, but improve performance, especially for small inputs.rapidhash::v1 V1_BUG argument to actually match the original v1.x.x crate behaviour, which changes the hash output. The if statement was fundamentally wrong in the v2.x.x crate and failing to hash some bytes, apologies. This now has a proper test to prevent future regressions.rapidhash::rng::rapidrng_fast_non_portable: a slightly faster, lower-quality RNG that also has optimisations for u32 platforms without wide-arithmetic support. Excellent for generating fixtures in our WASM benchmarks.rapidhash_file methods have been deprecated, with a note to use rapidhash::v3 instead. This is because they aren't streaming-compatible hashing algorithms which may be misleading if someone has not read the documentation in detail. They will continue to be included for the foreseeable future as they provide the CLI functionality.RapidHasher significantly improved performance hashing integers, tuples, and integer types using the new SPONGE configuration in both fast and quality modes.RapidHasher now uses a non-portable mixing function for an improvement on platforms with slow wide arithmetic, such as wasm32.rapidhash::v3 has a healthy performance improvement for mid-size input lengths by skipping the 112+ length setup/teardown.Fix docs.rs crashing with a broken README link.
Minor documentation improvements.
Breaking: Removed the deprecated RapidHashBuilder type, it has been replaced with RapidBuildHasher to match the rust naming convention.
Rapidhash algorithm changes have pushed us towards a refactor of this crate. Compatibility with rapidhash V2.0, V2.1, V2.2, and V3 are now all supported under rapidhash::v3 and rapidhash::v2 modules. These expose rapidhash_v3 and similar methods to avoid version confusion. Each version produces different hash outputs.
RapidHasher in-memory hasher overhaul:
RapidHasher deviates from the main rapidhash algorithm to improve performance hashing rust objects while maintaining similar hash quality. Performance should be significantly improved over the v1 crate.RapidHasher may change the underlying hash between minor versions. The rust Hasher trait is not to be used for portable hashing, and we will follow this mantra to allow easily improving hashing performance. Portable hashing should be done though the rapidhash::v3::rapidhash_v3(bytes: &[u8]) and equivalent functions.RapidHasher, RandomState, RapidHashMap, and RapidHashSet now move behind the following three modules:
rapidhash::fast when hashing speed is the priority. This sacrifices some hash quality for speed, uses FNV when hashing integer types, and skips the final avalanche mixing step.rapidhash::quality when hash quality is the ultimate priority. This closely resembles the rapidhash algorithm and hash quality.rapidhash::inner when you want to configure the settings for AVALANCHE, FNV, COMPACT, and PROTECTED modes as necessary.rapidhash portable hashing function moved and renamed, with different hash output:
rapidhash::v1::rapidhash_v1_inline can accept a compile time argument V1_BUG=true, which will reproduce the old hash output from the 1.x crate versions.rapidhash::rapidhash() to rapidhash::v1::rapidhash_v1() to allow us to include other rapidhash versions in the same naming convention.rng module, but otherwise works the same.RapidRandomState has been renamed to RandomState, and moved into fast, quality, and inner modules.rapid_mix and rapid_mum from the public API for cleanliness. These are now internal functions.RapidInline* variants in favour of making the default Rapid types inline by default. If this is a problem for your use case, please raise a GitHub issue, thanks!RapidHashBuilder type, it has been replaced with RapidBuildHasher to match the rust naming convention.Updated rand and rand-core to 0.9. #18
Added rapidhash_file for streaming file hashing. #10
Added rapidhash CLI via cargo install rapidhash.
cargo install rapidhash.Added RapidBuildHasher to replace RapidHashBuilder.
RapidHashBuilder.RapidBuildHasher to replace RapidHashBuilder.Ownership kindly transferred by Justin Bradford to Liam Gray and this repository.
Ownership kindly transferred by Justin Bradford to Liam Gray and this repository.
hash function that only hashes on u128 types.rapidhash and rapidhash_seeded functions to hash byte streams.RapidHasher and RapidHasherInline for hashing via a std::hash::Hasher compatible interface.RapidHashMap, RapidInlineHashMap, RapidHashSet, and RapidInlineHashSet helper types.RapidHashBuilder and RapidInlineHashBuilder for std::hash::BuildHasher implementing types compatible with HashMap and HashSet.RapidRandomState for random seed initialization.RapidRng, rapidrng_fast, and rapidrng_time for random number generation inspired by the wyhash crate but based on rapid_mix.std, rand, rng, and unsafe features.Initial release by Justin Bradford supporting rapidhash on u128 inputs.
Initial release by Justin Bradford supporting rapidhash on u128 inputs.
hash for rapidhashing u128 types.Your coding agent can read these notes before it upgrades. Set up the MCP server →