# mur3
Rust implementation of MurmurHash3.
[![Crates.io](https://img.shields.io/crates/v/mur3.svg?maxAge=2592000)](https://crates.io/crates/mur3)
[![docs.rs](https://docs.rs/mur3/badge.svg)](https://docs.rs/mur3)
[![Build Status](https://github.com/tikv/mur3/workflows/CI/badge.svg)](https://github.com/tikv/mur3/actions)
### TODO
- [x] Add benchmakr results
- [x] Write usage docs
- [x] Add correctness check comparing to C implements
- [ ] Add x86_128 implement
### Benchmark
#### murmurhash3_x86_32
input size| Function (ns,MiB/s) | Hasher | C implementation
-----------|------------|--------|----------
0 | 3.8183
0 | 17.595
0 | 11.444
0
1 | 5.2481
181.72 | 23.207
41.094 | 12.257
77.806
2 | 4.7781
399.19 | 24.801
76.906 | 12.897
147.90
3 | 5.3299
536.79 | 24.981
114.53 | 12.717
224.98
4 | 5.1213
744.87 | 17.726
215.21 | 12.774
298.64
32 | 16.253
1833.6 | 22.755
1309.7 | 21.472
1387.9
64 | 29.913
1992.6 | 35.920
1659.4 | 36.617
1627.8
128 | 59.530
2002.5 | 64.599
1845.4 | 67.039
1778.2
256 | 123.25
1934.5 | 126.34
1887.2 | 139.03
1714.9
1024 | 483.38
1972.9 | 482.87
1975.0 | 537.98
1772.7
4096 | 1927.8
1978.7 | 1903.6
2004.0 | 2153.9
1771.1
8192 | 3850.0
1981.7 | 3853.0
1980.1 | 4340.2
1757.8
#### murmurhash3_x64_128
input size| Function (ns,MiB/s) | Hasher | C implementation
-----------|------------|--------|----------
0 | 8.0913
0 | 12.850
0 | 9.2690
0
1 | 11.506
82.882 | 25.815
36.942 | 11.572
82.415
2 | 12.685
150.37 | 26.467
72.064 | 11.967
159.39
3 | 14.075
203.27 | 26.976
106.06 | 12.198
234.54
4 | 9.5975
397.47 | 14.618
260.96 | 12.689
300.64
7 | 14.098
473.52 | 20.176
330.88 | 13.845
482.16
13 | 11.870
1020.0 | 18.302
677.39 | 16.878
734.53
16 | 11.195
1331.1 | 14.872
1002.0 | 12.821
1162.3
32 | 14.040
2122.7 | 17.883
1666.6 | 15.739
1893.5
64 | 23.104
2579.9 | 25.727
2316.9 | 22.327
2669.7
128 | 34.333
3472.2 | 40.924
2913.0 | 35.334
3373.8
256 | 62.698
3802.6 | 68.656
3472.7 | 62.235
3830.9
1024 | 239.06
3989.3 | 252.23
3781.0 | 225.46
4229.9
4096 | 900.40
4236.7 | 995.50
3831.9 | 884.38
4313.4
8192 | 1800.1
4238.3 | 2000.1
3814.4 | 1753.8
4350.1