PackageTrack
Sign in Get early access

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 2026
2020 2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 60 of 62
  1. v1.1.1-0.20260723224138-c88f7bdcf992 23 Jul 2026 pre-release

    Nothing published for this version

  2. v1.1.0 23 Jan 2026
    Release notes

    Just run gofmt -w .

    Open source →
  3. v1.0.3-0.20250724185950-77e65e1f514f 24 Jul 2025 pre-release

    Nothing published for this version

  4. v1.0.3-0.20250310223743-4b2280ee9daf 10 Mar 2025 pre-release

    Nothing published for this version

  5. v1.0.3-0.20230502181907-7a4a65f1295e 02 May 2023 pre-release

    Nothing published for this version

  6. v1.0.3-0.20230502181907-3808c706a06a 02 May 2023 pre-release

    Nothing published for this version

  7. v1.0.3-0.20230105190837-8b1e819c6d4d 05 Jan 2023 pre-release

    Nothing published for this version

  8. v1.0.3-0.20220911134137-44d8fda7850a 11 Sep 2022 pre-release

    Nothing published for this version

  9. v1.0.2 05 Mar 2022
    Release notes

    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

    Open source →
  10. v1.0.2-0.20220305191009-e6b0fd3c7bb5 05 Mar 2022 pre-release

    Nothing published for this version

  11. v1.0.2-0.20211113223132-d10cc761c3ac 13 Nov 2021 pre-release

    Nothing published for this version

  12. v1.0.1 11 Nov 2021
    Release notes

    make zero value Hasher valid

    Open source →
  13. v1.0.0 11 Nov 2021
    Release notes

    go vet on more combos and fix test builds

    Open source →
  14. v1.0.0-rc3.0.20210921232450-c77878a38204 21 Sep 2021 pre-release

    Nothing published for this version

  15. v1.0.0-rc3.0.20210921212306-5d489ec08be0 21 Sep 2021 pre-release

    Nothing published for this version

  16. v1.0.0-rc3.0.20210921212306-226faff1ffc9 21 Sep 2021 pre-release

    Nothing published for this version

  17. v1.0.0-rc3 18 Sep 2021 pre-release
    Release notes

    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

    Open source →
  18. v1.0.0-rc2.0.20210918145839-b240456d6788 18 Sep 2021 pre-release

    Nothing published for this version

  19. v1.0.0-rc2.0.20210916144003-669a5fc93c85 16 Sep 2021 pre-release

    Nothing published for this version

  20. v1.0.0-rc2.0.20210916144003-0d6d3ec9e41e 16 Sep 2021 pre-release

    Nothing published for this version

  21. v1.0.0-rc2.0.20210916144003-01a91e30d297 16 Sep 2021 pre-release

    Nothing published for this version

  22. v1.0.0-rc2 09 Sep 2021 pre-release
    Release notes

    This worked because of alignment. Instead use explicit uint64s.

    Open source →
  23. v1.0.0-rc1.0.20210909162519-15f67708de02 09 Sep 2021 pre-release

    Nothing published for this version

  24. v1.0.0-rc1.0.20210830155713-f1e814efae8b 30 Aug 2021 pre-release

    Nothing published for this version

  25. v1.0.0-rc1.0.20210830144205-97ecdea48bc9 30 Aug 2021 pre-release

    Nothing published for this version

  26. v1.0.0-rc1.0.20210825194513-b74a5ff8050b 25 Aug 2021 pre-release

    Nothing published for this version

  27. v1.0.0-rc1 25 Aug 2021 pre-release
    Release notes

    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 a make vet check
    that runs go vet on 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.

    Open source →
  28. v0.13.0 25 Aug 2021
    Release notes

    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 a make vet check
    that runs go vet on 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.

    Open source →
  29. v0.12.1-0.20210825191033-84986888ae14 25 Aug 2021 pre-release

    Nothing published for this version

  30. v0.12.1-0.20210824123103-83b8bd2fd42c 24 Aug 2021 pre-release

    Nothing published for this version

  31. v0.12.0 22 Jun 2021
    Release notes

    bump avo and stop using BP

    Open source →
  32. v0.11.0 07 Jun 2021
    Release notes

    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 changing

    res := 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.

    Open source →
  33. v0.10.0 12 Jan 2021

    Nothing published for this version

  34. v0.9.1-0.20210111192555-080c33317758 11 Jan 2021 pre-release

    Nothing published for this version

  35. v0.9.0 22 Dec 2020

    Nothing published for this version

  36. v0.8.2 04 Aug 2020

    Nothing published for this version

  37. v0.8.1 04 Aug 2020

    Nothing published for this version

  38. v0.8.0 28 Jul 2020

    Nothing published for this version

  39. v0.0.0-20260723224138-c88f7bdcf992 23 Jul 2026 pre-release

    Nothing published for this version

  40. v0.0.0-20260123191808-84cc04fc6177 23 Jan 2026 pre-release

    Nothing published for this version

  41. v0.0.0-20250724185950-77e65e1f514f 24 Jul 2025 pre-release

    Nothing published for this version

  42. v0.0.0-20230502181907-3808c706a06a 02 May 2023 pre-release

    Nothing published for this version

  43. v0.0.0-20230105190837-8b1e819c6d4d 05 Jan 2023 pre-release

    Nothing published for this version

  44. v0.0.0-20211113223132-d10cc761c3ac 13 Nov 2021 pre-release

    Nothing published for this version

  45. v0.0.0-20210918145839-b240456d6788 18 Sep 2021 pre-release

    Nothing published for this version

  46. v0.0.0-20210909162519-15f67708de02 09 Sep 2021 pre-release

    Nothing published for this version

  47. v0.0.0-20210825191033-84986888ae14 25 Aug 2021 pre-release

    Nothing published for this version

  48. v0.0.0-20191227220208-65f423c10688 27 Dec 2019 pre-release

    Nothing published for this version

  49. v0.0.0-20191021174148-b56a7dc3d80c 21 Oct 2019 pre-release

    Nothing published for this version

  50. v0.0.0-20190923153500-83a7230063d0 23 Sep 2019 pre-release

    Nothing published for this version

  51. v0.0.0-20190920185308-7d4834599e09 20 Sep 2019 pre-release

    Nothing published for this version

  52. v0.0.0-20190829032042-2e75bc3ac09d 29 Aug 2019 pre-release

    Nothing published for this version

  53. v0.0.0-20190829023610-cef1e81095a7 29 Aug 2019 pre-release

    Nothing published for this version

  54. v0.0.0-20190817213027-518846a5db2f 17 Aug 2019 pre-release

    Nothing published for this version

  55. v0.0.0-20190723171140-016cf9b7a3dd 23 Jul 2019 pre-release

    Nothing published for this version

  56. v0.0.0-20190706061215-e3a4ded7d14f 06 Jul 2019 pre-release

    Nothing published for this version

  57. v0.0.0-20190706054419-27eba1deae7f 06 Jul 2019 pre-release

    Nothing published for this version

  58. v0.0.0-20190402181837-148601fe83bd 02 Apr 2019 pre-release

    Nothing published for this version

  59. v0.0.0-20190402180534-658b0066ca86 02 Apr 2019 pre-release

    Nothing published for this version

  60. v0.0.0-20190330160623-6bb78cf13073 30 Mar 2019 pre-release

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive