Cyan4973/xxHash
FreeExtremely fast non-cryptographic hash algorithm
About Cyan4973/xxHash
xxHash is an extremely fast non-cryptographic hash algorithm designed to process data at RAM speed limits. It is highly portable and produces identical hashes across all platforms, regardless of endianness. The library includes multiple algorithms: XXH32 for 32-bit hashes using 32-bit arithmetic, XXH64 for 64-bit hashes, and XXH3 (since v0.8.0) which generates 64-bit or 128-bit hashes using vectorized arithmetic. XXH3's 128-bit variant is called XXH128. All variants successfully pass the SMHasher test suite, which evaluates collision, dispersion, and randomness quality. Additionally, XXH3 is optimized for excellent performance on both long and small inputs, making it ideal for hash tables, bloom filters, and other data structures where speed and quality are essential.
Key Features
Pros & Cons
- Extremely high speed, often limited by RAM bandwidth
- Portable across platforms with consistent output
- High quality hashing proven by SMHasher test suite
- Excellent performance on small data inputs
- Offers multiple hash sizes (32, 64, 128-bit) to suit different needs
- Non-cryptographic; not suitable for security-sensitive applications (e.g., password hashing, digital signatures)
- Not designed to resist collision attacks or preimage attacks
- May be outperformed by cryptographic hashes in security-critical contexts due to design trade-offs