Add hash.XxHash

Also move the non crypto hash funcs into this new package.

This is much faster than e.g. MD5, especially for larger inputs:

```
BenchmarkXxHash/xxHash_43-10         	 9917955	       112.2 ns/op	      56 B/op	       4 allocs/op
BenchmarkXxHash/mdb5_43-10           	 6017239	       204.1 ns/op	      96 B/op	       3 allocs/op
BenchmarkXxHash/fnv32a_43-10         	14407333	        82.30 ns/op	      16 B/op	       1 allocs/op
BenchmarkXxHash/xxHash_4300-10       	 2916892	       409.7 ns/op	      56 B/op	       4 allocs/op
BenchmarkXxHash/mdb5_4300-10         	  159748	      7491 ns/op	    4912 B/op	       3 allocs/op
BenchmarkXxHash/fnv32a_4300-10       	  218210	      5510 ns/op	      16 B/op	       1 allocs/op
```

Fixes #12635
This commit is contained in:
Bjørn Erik Pedersen
2024-07-03 11:20:46 +02:00
parent edeed52fc5
commit 644d55475d
7 changed files with 183 additions and 7 deletions

View File

@@ -53,13 +53,6 @@ func init() {
},
)
ns.AddMethodMapping(ctx.FNV32a,
nil,
[][2]string{
{`{{ crypto.FNV32a "Hugo Rocks!!" }}`, `1515779328`},
},
)
ns.AddMethodMapping(ctx.HMAC,
[]string{"hmac"},
[][2]string{