PackageTrack
Sign in Get early access

twox-hash

A Rust implementation of the XXHash and XXH3 algorithms

2.1.3 225M downloads/mo #454 most downloaded on crates.io shepmaster/twox-hash

What this package is like to depend on

Last release 1 months ago

19 Jul 2026

Release timing varies

gaps range from 2 weeks to 2.5 years

Some releases are documented

notes for 6 of 21 stable releases

2 versions withdrawn

withdrawn after publishing

11 years old

23 releases · first in 2015

2 releases in the last 12 months

see the full history below

Release timeline

23 releases · May 2015 to Jul 2026
2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026
Release Pre-release Withdrawn

Releases

latest 23
  1. 2.1.3 19 Jul 2026
    Release notes

    Fixed

    • Removed a panic that could occur when using XxHash32 or XxHash64 in debug mode. Release mode is unaffected.

    Changed

    • The version range for the optional rand dependency now allows 0.10 in addtion to 0.9.
    Open source →
  2. 2.1.2 03 Sep 2025
    Release notes

    Changed

    • The documentation has been updated to account for XxHash3_128.
    Open source →
  3. 2.1.1 09 Jun 2025
    Release notes

    Changed

    • The version range for the optional rand dependency is now 0.9.
    Open source →
  4. 2.1.0 09 Dec 2024
    Release notes

    Added

    • The XXH3 128-bit algorithm is implemented via XxHash3_128 and the xxhash3_128 module.
    Open source →
  5. 2.0.1 04 Nov 2024
    Release notes

    Fixed

    • Removed a panic that could occur when using XxHash3_64 to hash 1 to 3 bytes of data in debug mode. Release mode and different lengths of data are unaffected.
    Open source →
  6. 2.0.0 18 Oct 2024
    Release notes

    This release is a complete rewrite of the crate, including reorganization of the code. The XXH3 algorithm now matches the 0.8 release of the reference C xxHash implementation.

    Added

    • XxHash32::oneshot and XxHash64::oneshot can perform hashing with zero allocation and generally improved performance. If you have code that creates a hasher and hashes a slice of bytes exactly once, you are strongly encouraged to use the new functions. This might look like:

      // Before
      let mut hasher = XxHash64::new(); // or XxHash32, or with seeds
      some_bytes.hash(&mut hasher);
      let hash = hasher.finish();
      
      // After
      let hash = XxHash64::oneshot(some_bytes);
      
    • There is a feature flag for each hashing implementation. It is recommended that you opt-out of the crate's default features and only select the implementations you need to improve compile speed.

    Changed

    • The crates minimum supported Rust version (MSRV) is now 1.81.

    • Functional and performance comparisons are made against the reference C xxHash library version 0.8.2, which includes a stable XXH3 algorithm.

    • Support for randomly-generated hasher instances is now behind the random feature flag. It was previously combined with the std feature flag.

    Removed

    • The deprecated type aliases XxHash and RandomXxHashBuilder have been removed. Replace them with XxHash64 and xxhash64::RandomState respectively.

    • RandomXxHashBuilder32 and RandomXxHashBuilder64 are no longer available at the top-level of the crate. Replace them with xxhash32::RandomState and ``xxhash64::RandomState` respectively.

    • Xxh3Hash64 and xx3::Hash64 have been renamed to XxHash3_64 and xxhash3_64::Hasher respectively.

    • The free functions xxh3::hash64, xxh3::hash64_with_seed, and xxh3::hash64_with_secret are now associated functions of xxhash3_64::Hasher: oneshot, oneshot_with_seed and oneshot_with_secret. Note that the argument order has changed.

    • Support for the digest crate has been removed. The digest crate is for cryptographic hash functions and xxHash is non-cryptographic.

    • XxHash32 and XxHash64 no longer implement Copy. This prevents accidentally mutating a duplicate instance of the state instead of the original state. Clone is still implemented so you can make deliberate duplicates.

    • The XXH3 128-bit variant is not yet re-written. Work is in progress for this.

    • We no longer provide support for randomly-generated instances of the XXH3 64-bit variant. The XXH3 algorithm takes both a seed and a secret as input and deciding what to randomize is non-trivial and can have negative impacts on performance.

    Open source →
  7. 1.6.3 04 May 2022

    Nothing published for this version

  8. 1.6.2 25 Dec 2021

    Nothing published for this version

  9. 1.6.1 05 Aug 2021

    Nothing published for this version

  10. 1.6.0 15 Oct 2020

    Nothing published for this version

  11. 1.5.0 05 Aug 2019

    Nothing published for this version

  12. 1.4.2 02 Jul 2019

    Nothing published for this version

  13. 1.4.1 29 Jun 2019 withdrawn

    Nothing published for this version

  14. 1.4.0 26 Jun 2019 withdrawn

    Nothing published for this version

  15. 1.3.0 17 May 2019

    Nothing published for this version

  16. 1.2.0 12 Apr 2019

    Nothing published for this version

  17. 1.1.2 10 Dec 2018

    Nothing published for this version

  18. 1.1.1 06 Jul 2018

    Nothing published for this version

  19. 1.1.0 19 Apr 2017

    Nothing published for this version

  20. 1.0.1 19 Jan 2017

    Nothing published for this version

  21. 1.0.0 10 Mar 2016

    Nothing published for this version

  22. 0.1.1 20 Jul 2015

    Nothing published for this version

  23. 0.1.0 09 May 2015

    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