A C port of the Murmur3 non-cryptographic hash function, optimized for performance on x86/x64 architectures.
murmur3 is a C port of the Murmur3 non-cryptographic hash function, designed for high-speed hashing in applications like hash tables and bloom filters. It provides optimized implementations for x86 and x64 architectures, balancing throughput and latency for different key sizes and system types. The project translates the original C++ code into standard C for compatibility with compilers like gcc.
C developers working on performance-sensitive applications that require efficient hashing, such as database systems, caching mechanisms, or probabilistic data structures.
Developers choose this implementation for its proven performance on x86/x64 hardware, straightforward integration, and public domain licensing. It offers a reliable, fast alternative to cryptographic hashes where security is not a concern.
Murmur3 hash in C
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Optimized for fast throughput and low latency on x86 processors, with the README noting up to 250% higher throughput for MurmurHash3_x64_128 compared to the 32-bit variant.
Just compile and link murmur3.c with clear function prototypes in murmur3.h, plus example.c and a makefile for quick testing.
Offers three specialized functions (x86_32, x86_128, x64_128) for different system types and key sizes, allowing tailored use based on performance needs.
All code is in the public domain, eliminating licensing restrictions and making it easy to incorporate into any project.
Relies on x86 endianness and unaligned read efficiencies, requiring manual adjustments for non-x86 architectures, as admitted in the README.
The README lacks detailed API explanations, performance benchmarks, or guidance for porting to other architectures, relying on users to inspect the code.
Does not include pre-configured adaptations for other processors, forcing developers to modify the codebase for cross-platform compatibility.