MCPcopy Index your code
hub / github.com/cespare/xxhash

github.com/cespare/xxhash @v2.3.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v2.3.0 ↗ · + Follow
59 symbols 203 edges 12 files 22 documented · 37% 833 cross-repo links
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

xxhash

Go Reference Test

xxhash is a Go implementation of the 64-bit xxHash algorithm, XXH64. This is a high-quality hashing algorithm that is much faster than anything in the Go standard library.

This package provides a straightforward API:

func Sum64(b []byte) uint64
func Sum64String(s string) uint64
type Digest struct{ ... }
    func New() *Digest

The Digest type implements hash.Hash64. Its key methods are:

func (*Digest) Write([]byte) (int, error)
func (*Digest) WriteString(string) (int, error)
func (*Digest) Sum64() uint64

The package is written with optimized pure Go and also contains even faster assembly implementations for amd64 and arm64. If desired, the purego build tag opts into using the Go code even on those architectures.

Compatibility

This package is in a module and the latest code is in version 2 of the module. You need a version of Go with at least "minimal module compatibility" to use github.com/cespare/xxhash/v2:

  • 1.9.7+ for Go 1.9
  • 1.10.3+ for Go 1.10
  • Go 1.11 or later

I recommend using the latest release of Go.

Benchmarks

Here are some quick benchmarks comparing the pure-Go and assembly implementations of Sum64.

input size purego asm
4 B 1.3 GB/s 1.2 GB/s
16 B 2.9 GB/s 3.5 GB/s
100 B 6.9 GB/s 8.1 GB/s
4 KB 11.7 GB/s 16.7 GB/s
10 MB 12.0 GB/s 17.3 GB/s

These numbers were generated on Ubuntu 20.04 with an Intel Xeon Platinum 8252C CPU using the following commands under Go 1.19.2:

benchstat <(go test -tags purego -benchtime 500ms -count 15 -bench 'Sum64$')
benchstat <(go test -benchtime 500ms -count 15 -bench 'Sum64$')

Projects using this package

Core symbols most depended-on inside this repo

Sum64
called by 25
xxhash.go
Write
called by 19
xxhash.go
u64
called by 15
xxhash.go
round
called by 15
xxhash.go
New
called by 9
xxhash.go
WriteString
called by 9
xxhash_safe.go
mergeRound
called by 8
xxhash.go
appendUint64
called by 5
xxhash.go

Shape

Function 46
Method 11
Struct 2

Languages

Go100%

Modules by API surface

xxhash.go26 symbols
xxhash_test.go8 symbols
bench_test.go4 symbols
xxhsum/xxhsum.go3 symbols
xxhashbench/xxhashbench_test.go3 symbols
xxhash_unsafe.go3 symbols
xxhash_unsafe_test.go2 symbols
xxhash_safe.go2 symbols
xxhash_other.go2 symbols
xxhash_asm.go2 symbols
dynamic/plugin.go2 symbols
dynamic/dynamic_test.go2 symbols

For agents

$ claude mcp add xxhash \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact