Skip to content

The-King-of-Toasters/zig-xxHash

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Zig implementaions of the original xxHash digest algorithms: xxHash32 and xxHash64. There exists another implementation, but it has unfortunately bit-rotted over time due to the many changes in the Zig language. This implementation is structured to have a similar API to the existing hashing algorithms in the standard library. The performance is competitive with them too - here is the result of running src/benchmark.zig with the ReleaseFast build mode. The first column was from a Ryzen 7 3700X, the second an i7-2620M:

wyhash
   iterative:    6787 MiB/s    7050 MiB/s [84b9fcc452c9983b]
  small keys:   12846 MiB/s    7160 MiB/s [3959292c08000000]
fnv1a
   iterative:    1002 MiB/s     805 MiB/s [1e3d9d378e4b7325]
  small keys:    1641 MiB/s    1359 MiB/s [b949e3e834400000]
adler32
   iterative:    3627 MiB/s    2811 MiB/s [a302147400000000]
  small keys:    2851 MiB/s    1957 MiB/s [3a4403c240000000]
crc32-slicing-by-8
   iterative:    2739 MiB/s    1709 MiB/s [ab94acd000000000]
  small keys:    4199 MiB/s    2204 MiB/s [3b4945b200000000]
crc32-half-byte-lookup
   iterative:     243 MiB/s     177 MiB/s [ab94acd000000000]
  small keys:     309 MiB/s     197 MiB/s [3b4945b200000000]
cityhash-32
  small keys:    6413 MiB/s    3499 MiB/s [323c336000000000]
cityhash-64
  small keys: 1145004 MiB/s  697623 MiB/s [b9bf898c9dc00000]
murmur2-32
  small keys:    4628 MiB/s    3003 MiB/s [1041b9c940000000]
murmur2-64
  small keys:    8514 MiB/s    5097 MiB/s [1d2b492b8b800000]
murmur3-32
  small keys:    4296 MiB/s    2477 MiB/s [37385682c0000000]
xxhash-32
   iterative:    8043 MiB/s    5468 MiB/s [dad3604000000000]
  small keys:   10010 MiB/s    3868 MiB/s [db11230c00000000]
xxhash-64
   iterative:    9587 MiB/s   10916 MiB/s [53b384fe4fb92291]
  small keys:    4586 MiB/s    2642 MiB/s [bfa9f0074d400000]

About

xxHash32/64 implementations in Zig

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages