Skip to content

chore(deps): Bump fastcdc from 3.2.1 to 4.0.1 in /native - #44

Open
dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/cargo/native/fastcdc-4.0.1
Open

chore(deps): Bump fastcdc from 3.2.1 to 4.0.1 in /native#44
dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/cargo/native/fastcdc-4.0.1

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Aug 10, 2026

Copy link
Copy Markdown
Contributor

Bumps fastcdc from 3.2.1 to 4.0.1.

Release notes

Sourced from fastcdc's releases.

4.0.1

Fixed

  • Restore rounded-log mask selection. The 4.0.0 cleanup replaced the private logarithm2() helper (rounded log2) with usize::ilog2() (floored log2), which silently changed cut points for any avg_size that is not a power of two. Power-of-two sizes were unaffected. Cut points now match 3.2.1 again.

4.0.0

Many changes suggested by Claude Code that seem worth making despite breaking the API. The changes needed are minor, just changing u32 to usize for the common use case.

Breaking Changes

Size parameter types changed from u32 to usize across all three modules (v2016, v2020, ronomon):

  • All public constructors: new(), with_level(), with_level_and_seed() for FastCDC, StreamCDC, and AsyncStreamCDC
  • Public constants MINIMUM_MIN, MINIMUM_MAX, AVERAGE_MIN, AVERAGE_MAX, MAXIMUM_MIN, MAXIMUM_MAX are now usize instead of u32
  • cut_gear() gear parameters changed from &[u64; 256] to &[u64]
  • get_gear_with_seed() return type changed from (Box<[u64; 256]>, Box<[u64; 256]>) to (Cow<'static, [u64]>, Cow<'static, [u64]>)
  • Error::Display output format changed (e.g. "chunker error: Empty""no more data")
  • Bounds checks on chunk size parameters changed from assert!() to debug_assert!(), meaning invalid sizes will no longer panic in release builds

Minor Changes

  • MASKS constant in v2016 is now pub (was private)
  • Normalization enum in both v2016 and v2020 now derives Eq and PartialEq
  • Normalization::bits() in v2016 is now pub (was private), and got a doc comment in v2020

Bug Fixes & Performance Improvements

  • size_hint() corrected in all three iterators: the lower bound was incorrectly returning the upper bound; now returns 1.min(upper_bound), which is semantically correct
  • Buffer extraction optimized in StreamCDC and AsyncStreamCDC: replaced drain(..).collect() + resize() with extend_from_slice() + copy_within(), avoiding unnecessary reallocation
  • get_gear_with_seed() optimized: when seed == 0, the static GEAR tables are borrowed directly via Cow::Borrowed instead of heap-allocating a copy
  • mask() in ronomon changed from 2u32.pow(bits) - 1 to (1u32 << bits) - 1 (equivalent but avoids potential debug-mode panics on overflow)
Changelog

Sourced from fastcdc's changelog.

[4.0.1] - 2026-04-26

Fixed

  • Restore rounded-log mask selection. The 4.0.0 cleanup replaced the private logarithm2() helper (rounded log2) with usize::ilog2() (floored log2), which silently changed cut points for any avg_size that is not a power of two. Power-of-two sizes were unaffected. Cut points now match 3.2.1 again.

[4.0.0] - 2026-04-11

Many changes suggested by Claude Code that seem worth making despite breaking the API. The changes needed are minor, just changing u32 to usize for the common use case.

Breaking Changes

Size parameter types changed from u32 to usize across all three modules (v2016, v2020, ronomon):

  • All public constructors: new(), with_level(), with_level_and_seed() for FastCDC, StreamCDC, and AsyncStreamCDC
  • Public constants MINIMUM_MIN, MINIMUM_MAX, AVERAGE_MIN, AVERAGE_MAX, MAXIMUM_MIN, MAXIMUM_MAX are now usize instead of u32
  • cut_gear() gear parameters changed from &[u64; 256] to &[u64]
  • get_gear_with_seed() return type changed from (Box<[u64; 256]>, Box<[u64; 256]>) to (Cow<'static, [u64]>, Cow<'static, [u64]>)
  • Error::Display output format changed (e.g. "chunker error: Empty""no more data")
  • Bounds checks on chunk size parameters changed from assert!() to debug_assert!(), meaning invalid sizes will no longer panic in release builds

Minor Changes

  • MASKS constant in v2016 is now pub (was private)
  • Normalization enum in both v2016 and v2020 now derives Eq and PartialEq
  • Normalization::bits() in v2016 is now pub (was private), and got a doc comment in v2020

Bug Fixes & Performance Improvements

  • size_hint() corrected in all three iterators: the lower bound was incorrectly returning the upper bound; now returns 1.min(upper_bound), which is semantically correct
  • Buffer extraction optimized in StreamCDC and AsyncStreamCDC: replaced drain(..).collect() + resize() with extend_from_slice() + copy_within(), avoiding unnecessary reallocation
  • get_gear_with_seed() optimized: when seed == 0, the static GEAR tables are borrowed directly via Cow::Borrowed instead of heap-allocating a copy
  • mask() in ronomon changed from 2u32.pow(bits) - 1 to (1u32 << bits) - 1 (equivalent but avoids potential debug-mode panics on overflow)
Commits
  • 2e47aa3 fix: log2 change resulted in different cut points
  • 27a555c chore: add CLAUDE.md for use with Claude Code
  • 847bf8c major: breaking changes to constructor parameters
  • 07f0e3b chore: update dependencies
  • 4b4101c chore: fix more clippy warnings
  • 49c3d0b chore: fix all of the clippy warnings
  • 5013a0f fix: resolve clippy warning
  • 9fb499b fix: use ilog2() versus custom logarithm function
  • 0a95113 chore: upgrade to 2024 edition, cargo fmt
  • f7fc2c5 clippy: allow too many arguments on cut()
  • See full diff in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [fastcdc](https://github.com/nlfiedler/fastcdc-rs) from 3.2.1 to 4.0.1.
- [Release notes](https://github.com/nlfiedler/fastcdc-rs/releases)
- [Changelog](https://github.com/nlfiedler/fastcdc-rs/blob/master/CHANGELOG.md)
- [Commits](nlfiedler/fastcdc-rs@3.2.1...4.0.1)

---
updated-dependencies:
- dependency-name: fastcdc
  dependency-version: 4.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file rust Pull requests that update rust code labels Aug 10, 2026
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 rust Pull requests that update rust code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants