A family of extremely fast, high-quality, platform-independent hash functions optimized for different performance profiles.
Rapidhash is a family of non-cryptographic hash functions designed for exceptional speed and high-quality output across different input sizes and computing platforms. It solves the need for fast, reliable hashing in performance-sensitive applications like hash tables, data processing, and embedded systems. The project offers three optimized variants—rapidhash, rapidhashMicro, and rapidhashNano—each targeting specific performance profiles while maintaining platform independence.
Systems programmers, embedded developers, and performance engineers working on hash tables, data structures, or applications requiring high-speed hashing without cryptographic guarantees.
Developers choose Rapidhash for its combination of extreme performance (over 70GB/s throughput), excellent statistical quality validated by SMHasher tests, and platform independence that works across x86-64 and ARM architectures without specialized instructions.
Very fast, high quality, platform-independent hashing algorithm.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Achieves over 70GB/s throughput on Apple M4 CPUs and nanosecond-level latency for small inputs, as demonstrated in benchmark tables comparing it to xxh3.
Optimized for both AMD64 and AArch64 architectures without relying on machine-specific instructions, ensuring consistent speed across diverse hardware like M1 Pro, Ryzen, and Neoverse V2.
Passes all SMHasher and SMHasher3 tests with collision probabilities close to ideal, validated on datasets of up to 67 billion keys, as shown in the collision study results.
Offers three variants—rapidhash for general use, rapidhashMicro for cache-friendly HPC apps, and rapidhashNano for compact embedded systems—each optimized for specific performance profiles.
rapidhashNano is 'considerably slower for larger inputs' beyond 48 bytes, and rapidhashMicro is 15-20% slower for inputs above 1KB, requiring careful selection based on use case.
Achieving the advertised instruction counts (e.g., ~185 for rapidhash with Clang-18+) requires modern compilers; performance may degrade with older or less optimized compilers like some MSVC versions.
Compared to established hashes like xxHash, Rapidhash has fewer third-party bindings and community resources, though ports to Java, Rust, etc., are available but less battle-tested.