github.com/zeebo/xxh3
v1.1.0
#2266 most downloaded on Go modules
zeebo/xxh3
What this package is like to depend on
Last release 1 months ago
23 Jul 2026
Release timing varies
gaps range from 8 days to 1.9 years
Some releases are documented
notes for 7 of 12 stable releases
Nothing withdrawn
no release was ever pulled
7 years old
62 releases · first in 2019
4 releases in the last 12 months
see the full history below
Release timeline
62 releases · Mar 2019 to Jul 2026Releases
latest 60 of 62-
v1.1.1-0.20260723224138-c88f7bdcf99223 Jul 2026 pre-releaseNothing published for this version
-
v1.1.023 Jan 2026 -
v1.0.3-0.20250724185950-77e65e1f514f24 Jul 2025 pre-releaseNothing published for this version
-
v1.0.3-0.20250310223743-4b2280ee9daf10 Mar 2025 pre-releaseNothing published for this version
-
v1.0.3-0.20230502181907-7a4a65f1295e02 May 2023 pre-releaseNothing published for this version
-
v1.0.3-0.20230502181907-3808c706a06a02 May 2023 pre-releaseNothing published for this version
-
v1.0.3-0.20230105190837-8b1e819c6d4d05 Jan 2023 pre-releaseNothing published for this version
-
v1.0.3-0.20220911134137-44d8fda7850a11 Sep 2022 pre-releaseNothing published for this version
-
v1.0.205 Mar 2022Release notes
Open source →the trick to dispatch to one of two functions by picking it
and putting it into a variable to allow the body to be inlined
has a problem: the compiler, seeing the virtual dispatch, is
not smart enough to notice that every option does not escape
the argument, and so it escapes the argument.remove that and refactor some to gain some lost performance.
some smaller sizes are worse by <1ns, but some larger sizes
are better by up to 15%, and nothing escapes anymore.fixes #19
-
v1.0.2-0.20220305191009-e6b0fd3c7bb505 Mar 2022 pre-releaseNothing published for this version
-
v1.0.2-0.20211113223132-d10cc761c3ac13 Nov 2021 pre-releaseNothing published for this version
-
v1.0.111 Nov 2021 -
v1.0.011 Nov 2021 -
v1.0.0-rc3.0.20210921232450-c77878a3820421 Sep 2021 pre-releaseNothing published for this version
-
v1.0.0-rc3.0.20210921212306-5d489ec08be021 Sep 2021 pre-releaseNothing published for this version
-
v1.0.0-rc3.0.20210921212306-226faff1ffc921 Sep 2021 pre-releaseNothing published for this version
-
v1.0.0-rc318 Sep 2021 pre-releaseRelease notes
Open source →for sizes larger than a block+stripe (so 1088 bytes)
the Hasher would output the wrong value. this was due
to a bug caused by having reversed arguments to a copy
call. the test did not catch it because it too had a
bug where it was generating very aligned data bytes.the reason why it does this copy is because the final
accumulation step always reads a stripe backwards from
the end, so if we just accumulated a block and then
need to finalize, it reads in the last stripe of bytes
again.fixes #14
-
v1.0.0-rc2.0.20210918145839-b240456d678818 Sep 2021 pre-releaseNothing published for this version
-
v1.0.0-rc2.0.20210916144003-669a5fc93c8516 Sep 2021 pre-releaseNothing published for this version
-
v1.0.0-rc2.0.20210916144003-0d6d3ec9e41e16 Sep 2021 pre-releaseNothing published for this version
-
v1.0.0-rc2.0.20210916144003-01a91e30d29716 Sep 2021 pre-releaseNothing published for this version
-
v1.0.0-rc209 Sep 2021 pre-release -
v1.0.0-rc1.0.20210909162519-15f67708de0209 Sep 2021 pre-releaseNothing published for this version
-
v1.0.0-rc1.0.20210830155713-f1e814efae8b30 Aug 2021 pre-releaseNothing published for this version
-
v1.0.0-rc1.0.20210830144205-97ecdea48bc930 Aug 2021 pre-releaseNothing published for this version
-
v1.0.0-rc1.0.20210825194513-b74a5ff8050b25 Aug 2021 pre-releaseNothing published for this version
-
v1.0.0-rc125 Aug 2021 pre-releaseRelease notes
Open source →This change adds a Hasher type that implements hash.Hash. It
has to keep a trailing stripe because the finalization step
ends up reading up to a stripe from the end of the buffer after
a full block has been consumed.In order to implement it, a new accumBlock function was introduced
that does the first part of the hashLarge function that operates
on full blocks. It's possible that we can reduce the amount of
internal state the hash has to keep to 2 stripes instead of 17
stripes at the cost of more accumBlock calls. That's is left
for further work and investigation.Additionally, there was a lot of reorganization around how the
architecture specific code was laid out. This should help me
stop pushing changes that break other architectures because I
forgot build tags or whatever. There's now amake vetcheck
that runsgo veton different GOARCH values. So far, that
has been able to catch every silly mistake I've made doing
that. It also helps reduce some duplication by making the cpu
feature flags constants on unsupported architectures so that
the compiler can just dead-code eliminate some branches.Fixes #7.
-
v0.13.025 Aug 2021Release notes
Open source →This change adds a Hasher type that implements hash.Hash. It
has to keep a trailing stripe because the finalization step
ends up reading up to a stripe from the end of the buffer after
a full block has been consumed.In order to implement it, a new accumBlock function was introduced
that does the first part of the hashLarge function that operates
on full blocks. It's possible that we can reduce the amount of
internal state the hash has to keep to 2 stripes instead of 17
stripes at the cost of more accumBlock calls. That's is left
for further work and investigation.Additionally, there was a lot of reorganization around how the
architecture specific code was laid out. This should help me
stop pushing changes that break other architectures because I
forgot build tags or whatever. There's now amake vetcheck
that runsgo veton different GOARCH values. So far, that
has been able to catch every silly mistake I've made doing
that. It also helps reduce some duplication by making the cpu
feature flags constants on unsupported architectures so that
the compiler can just dead-code eliminate some branches.Fixes #7.
-
v0.12.1-0.20210825191033-84986888ae1425 Aug 2021 pre-releaseNothing published for this version
-
v0.12.1-0.20210824123103-83b8bd2fd42c24 Aug 2021 pre-releaseNothing published for this version
-
v0.12.022 Jun 2021 -
v0.11.007 Jun 2021Release notes
Open source →if your code broke because of this change, i would first like
to apologize. let me try to explain why i decided to do this
even though it would be breaking.first, it's a v0 library. this is just a necessary condition
though not sufficient. if it were v1, i would have to do
something else. second, it turns out that the go compiler does
not optimize with arrays well. heres some benchmarks:Fixed128/1 102MB/s ± 0% 241MB/s ± 1% +136.24% Fixed128/2 194MB/s ± 1% 457MB/s ± 2% +135.17% Fixed128/3 306MB/s ± 1% 717MB/s ± 0% +134.58% Fixed128/4 398MB/s ± 0% 924MB/s ± 3% +132.31% Fixed128/8 793MB/s ± 1% 1854MB/s ± 1% +133.88% Fixed128/9 855MB/s ± 1% 1597MB/s ± 1% +86.83% Fixed128/16 1.52GB/s ± 1% 2.84GB/s ± 1% +86.99% Fixed128/17 1.37GB/s ± 0% 2.51GB/s ± 1% +83.70% Fixed128/32 2.56GB/s ± 1% 4.58GB/s ± 9% +78.52% Fixed128/33 2.15GB/s ± 1% 3.53GB/s ± 1% +64.34% Fixed128/64 4.17GB/s ± 1% 6.86GB/s ± 1% +64.78% Fixed128/65 3.61GB/s ± 1% 5.36GB/s ± 4% +48.60% Fixed128/96 5.34GB/s ± 1% 8.01GB/s ± 0% +50.01% Fixed128/97 4.69GB/s ± 1% 6.85GB/s ± 1% +46.10% Fixed128/128 6.20GB/s ± 0% 9.04GB/s ± 1% +45.86% Fixed128/129 5.42GB/s ± 1% 6.35GB/s ± 1% +17.19% Fixed128/240 6.94GB/s ± 1% 7.85GB/s ± 1% +13.11%some of those speedups are absolutely massive. i went through
great lengths to get even 10% speedups before. third, one of
the main criterias of a good hash function is speed. assuming
two hash functions do an equally good job at their core
competency of hashing, speed is the most important feature.
otherwise, we'd just use some cryptographic hash function and
call it a day. so given that, i'm assuming that users of this
library would happily make small fixes to get that performance
improvement. indeed, a local fix could be applied by changingres := xxh3.Hash128(someBytes)to
resTmp := xxh3.Hash128(someBytes) res := [2]uint64{resTmp.Hi, resTmp.Lo}and if i could ship this change with a gofix to do that, i would.
anyway, sorry again. i hope you agree that it was worth it. all
approximately 5 of you at the time of this commit according to
deps.dev. -
v0.10.012 Jan 2021Nothing published for this version
-
v0.9.1-0.20210111192555-080c3331775811 Jan 2021 pre-releaseNothing published for this version
-
v0.9.022 Dec 2020Nothing published for this version
-
v0.8.204 Aug 2020Nothing published for this version
-
v0.8.104 Aug 2020Nothing published for this version
-
v0.8.028 Jul 2020Nothing published for this version
-
v0.0.0-20260723224138-c88f7bdcf99223 Jul 2026 pre-releaseNothing published for this version
-
v0.0.0-20260123191808-84cc04fc617723 Jan 2026 pre-releaseNothing published for this version
-
v0.0.0-20250724185950-77e65e1f514f24 Jul 2025 pre-releaseNothing published for this version
-
v0.0.0-20230502181907-3808c706a06a02 May 2023 pre-releaseNothing published for this version
-
v0.0.0-20230105190837-8b1e819c6d4d05 Jan 2023 pre-releaseNothing published for this version
-
v0.0.0-20211113223132-d10cc761c3ac13 Nov 2021 pre-releaseNothing published for this version
-
v0.0.0-20210918145839-b240456d678818 Sep 2021 pre-releaseNothing published for this version
-
v0.0.0-20210909162519-15f67708de0209 Sep 2021 pre-releaseNothing published for this version
-
v0.0.0-20210825191033-84986888ae1425 Aug 2021 pre-releaseNothing published for this version
-
v0.0.0-20191227220208-65f423c1068827 Dec 2019 pre-releaseNothing published for this version
-
v0.0.0-20191021174148-b56a7dc3d80c21 Oct 2019 pre-releaseNothing published for this version
-
v0.0.0-20190923153500-83a7230063d023 Sep 2019 pre-releaseNothing published for this version
-
v0.0.0-20190920185308-7d4834599e0920 Sep 2019 pre-releaseNothing published for this version
-
v0.0.0-20190829032042-2e75bc3ac09d29 Aug 2019 pre-releaseNothing published for this version
-
v0.0.0-20190829023610-cef1e81095a729 Aug 2019 pre-releaseNothing published for this version
-
v0.0.0-20190817213027-518846a5db2f17 Aug 2019 pre-releaseNothing published for this version
-
v0.0.0-20190723171140-016cf9b7a3dd23 Jul 2019 pre-releaseNothing published for this version
-
v0.0.0-20190706061215-e3a4ded7d14f06 Jul 2019 pre-releaseNothing published for this version
-
v0.0.0-20190706054419-27eba1deae7f06 Jul 2019 pre-releaseNothing published for this version
-
v0.0.0-20190402181837-148601fe83bd02 Apr 2019 pre-releaseNothing published for this version
-
v0.0.0-20190402180534-658b0066ca8602 Apr 2019 pre-releaseNothing published for this version
-
v0.0.0-20190330160623-6bb78cf1307330 Mar 2019 pre-releaseNothing published for this version