Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update Rust crate twox-hash to v2 #1547

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Nov 1, 2024

This PR contains the following updates:

Package Type Update Change
twox-hash workspace.dependencies major 1.6.3 -> 2.1.0

Release Notes

shepmaster/twox-hash (twox-hash)

v2.1.0

Compare Source

Added
  • The XXH3 128-bit algorithm is implemented via XxHash3_128 and the
    xxhash3_128 module.

v2.0.1

Compare Source

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.

v2.0.0

Compare Source

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.


Configuration

📅 Schedule: Branch creation - "after 8pm,before 6am" in timezone America/Los_Angeles, Automerge - "after 8pm,before 6am" in timezone America/Los_Angeles.

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot added the dependencies Pull requests that update a dependency file label Nov 1, 2024
@renovate renovate bot force-pushed the renovate/twox-hash-2.x branch 3 times, most recently from c9d55f1 to 77a2d1a Compare November 7, 2024 07:01
@renovate renovate bot force-pushed the renovate/twox-hash-2.x branch from 77a2d1a to 45fdf18 Compare December 10, 2024 04:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant