Skip to content

chore(deps): bump the rust-workspace group across 1 directory with 34 updates - #41

Closed
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/cargo/rust-workspace-0fa8f9f444
Closed

chore(deps): bump the rust-workspace group across 1 directory with 34 updates#41
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/cargo/rust-workspace-0fa8f9f444

Conversation

@dependabot

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

Copy link
Copy Markdown
Contributor

Bumps the rust-workspace group with 34 updates in the / directory:

Package From To
base64 0.22.1 0.23.0
blake3 1.8.2 1.8.5
clap 4.6.4 4.6.5
console 0.15.11 0.16.4
constant_time_eq 0.3.1 0.4.2
derive_more 1.0.0 2.1.1
digest 0.10.7 0.11.3
fancy-regex 0.16.2 0.19.0
fs4 0.9.1 1.1.0
futures-intrusive 0.4.2 0.5.0
hashbrown 0.16.1 0.17.1
itertools 0.14.0 0.15.0
lru 0.16.4 0.18.1
multimap 0.8.3 0.10.1
nix 0.30.1 0.31.3
object 0.36.7 0.39.1
os_str_bytes 6.6.1 7.2.0
parking_lot 0.11.2 0.12.5
rusqlite 0.37.0 0.40.1
sha1 0.10.7 0.11.0
sha2 0.10.9 0.11.0
shlex 1.3.0 2.0.1
similar 2.7.0 3.1.1
sysinfo 0.38.4 0.39.6
termimad 0.34.1 0.35.1
textwrap 0.11.0 0.16.2
tikv-jemallocator 0.6.1 0.7.0
tower-lsp-server 0.22.1 0.23.0
twox-hash 1.6.3 2.1.2
erased-serde 0.3.31 0.4.10
atomic 0.5.3 0.6.1
rustyline 14.0.0 18.0.1
annotate-snippets 0.9.2 0.12.16
logos 0.15.1 0.16.1

Updates base64 from 0.22.1 to 0.23.0

Changelog

Sourced from base64's changelog.

0.23.0

  • Added more consts for preconfigured configs and engines
  • Make DecodeError::InvalidLastSymbol more clear by including the decoded value
  • Added SIMD-accelerated engines behind the default-on simd-unsafe feature: Simd picks the best instruction set at runtime (AVX2 on x86_64, NEON on aarch64) and falls back to the scalar GeneralPurpose engine, while Avx2 and Neon target one instruction set with no runtime detection and work in no_std. The engines support the standard and URL-safe alphabets.
  • Update MSRV to 1.71.0
  • Add support for custom padding symbols
Commits
  • 9e9220a v0.23.0
  • 870326e Merge pull request #306 from marshallpierce/mp/trailing-bits-docs
  • fbec5f1 Document no trailing trailing bits
  • 0a23549 Merge pull request #305 from marshallpierce/mp/edition-2021
  • f10b7e2 Update deps & edition
  • 9d21a59 Merge pull request #304 from marshallpierce/mp/custom-padding-rebase
  • f70bad2 Support custom padding symbols
  • 684d79c Merge pull request #301 from marshallpierce/mp/simd-gardening
  • 5bf66f2 Merge pull request #284 from AbeZbm/add-tests
  • d3831cf Followups to SIMD work
  • Additional commits viewable in compare view

Updates blake3 from 1.8.2 to 1.8.5

Release notes

Sourced from blake3's releases.

1.8.5

version 1.8.5

Changes since 1.8.4:

  • Forcibly disable LTO when compiling C intrinsics from the Rust build. This fixes a build break on Arch Linux ARM: BLAKE3-team/BLAKE3#550

1.8.4

version 1.8.4

Changes since 1.8.3:

  • Updated the digest dependency from v0.10 to v0.11. THIS IS A POTENTIALLY BREAKING CHANGE for callers using the traits-preview Cargo feature. But this is not considered a breaking change for the blake3 crate itself; see the docs for traits-preview.
  • Performance for WASM SIMD targets is improved by ~20% when the wasm32_simd feature is enabled. Contributed by @​lamb356.

1.8.3

version 1.8.3

Changes since 1.8.2:

  • Add Hash::as_slice.
  • Update to the 2024 Edition and bump the MSRV to 1.85.
  • Fix a set of Miri failures in the intrinsics implementations. We were computing (though not dereferencing) an out-of-bounds pointer using add rather than wrapping_add. I'm not aware of any observable consequences of this bug. See BLAKE3-team/BLAKE3#507.
  • CPU feature detection on x86/x86-64 no longer requires the std Cargo feature in the blake3 crate.
  • Build fixes in the C implementation for macOS and Cygwin, and various improvements to the CMake build.
Commits
  • 93a431c version 1.8.5
  • 299b1e2 fix LTO builds by disabling LTO
  • 6a45fee add LTO builds to CI
  • 15e83a5 c: Use correct SIMD flags when compiling with Clang-Cl (#549)
  • 2e3727d cargo fmt everywhere
  • b97a24f version 1.8.4
  • 0ebe469 update to new rustcrypto trait releases
  • d4b005a wasm32_simd: use i8x16_shuffle for rot8 and rot16
  • 6eebbbd fix a struct size mismatch in tests
  • fb1411e c: use SIZE_MAX instead of -1 for size_t sentinels, add <stdint.h>
  • Additional commits viewable in compare view

Updates clap from 4.6.4 to 4.6.5

Release notes

Sourced from clap's releases.

v4.6.5

[4.6.5] - 2026-07-31

Fixes

  • (help) Correctly mark which value_names are optional with num_args
Changelog

Sourced from clap's changelog.

[4.6.5] - 2026-07-31

Fixes

  • (help) Correctly mark which value_names are optional with num_args
Commits
  • c8c9355 chore: Release
  • af74def docs: Update changelog
  • c96f222 Merge pull request #6368 from truffle-dev/fix/fish-env-escaping
  • 49a05cd fix(complete): Two-pass quote fish env-completer
  • e791004 test(complete): Snapshot fish env quoting cases
  • See full diff in compare view

Updates console from 0.15.11 to 0.16.4

Release notes

Sourced from console's releases.

0.16.4

What's Changed

0.16.3

What's Changed

0.16.2

What's Changed

0.16.1

What's Changed

0.16.0

What's Changed

The 0.15.12 release was yanked after it turned out to be semver-incompatible with existing usage by several of the most popular dependent crates, because it introduced a std feature -- and those crates used default-features = false but relied on the std-guarded features.

The 0.16.0 API should be semver-compatible with the 0.15.x API except for the need for the std feature.

Refer to the 0.15.12 release notes for more information.

0.15.12

What's Changed

... (truncated)

Commits
  • 598eca9 Bump version to 0.16.4
  • 0f22c35 feat: add is_dumb public function
  • 1426649 Bump actions/checkout from 3 to 7
  • d2d89ad ignore non-ascii input in Style::from_dotted_str
  • 6cff3e0 document current panic in Style::from_dotted_str via test cases
  • dd4334f Apply suggestions from clippy 1.95
  • 586efad Remove redundant as_handle helper
  • be20e85 Add TermInner::new constructors
  • 70ea3d0 Bump version to 0.16.3
  • 6bd8894 Remove make msrv-lock
  • Additional commits viewable in compare view

Updates constant_time_eq from 0.3.1 to 0.4.2

Changelog

Sourced from constant_time_eq's changelog.

0.4.2

  • Refactor detection of the DIT feature on ARM. For builds without the "std" feature, there's now an undocumented function to force the use of the DIT bit.

0.4.1

  • Simplify code to make it easier to review.

0.4.0

BREAKING CHANGE: this crate now has a "std" feature which is enabled by default. Disable it if you need to use this crate as a no_std crate.

Previous versions of this crate protected against the optimizer doing an early exit when the accumulator becomes non-zero (found a difference), but not against a sufficiently smart optimizer doing an early exit when the accumulator has all bits set (the accumulator never clears a bit, so having all bits set means it will no longer change).

Protecting against that also prevents autovectorization, so this release does manual vectorization to recover most of the speed lost. Where there is enough compiler support (stable vector intrinsics), it uses a mix of vector intrinsics and inline assembly for inputs which are a multiple of the vector size, while for other architectures and for the remainder of an input which is not a multiple of the vector size, it uses a generic word-at-a-time implementation with the native word size.

Some newer implementations of the ARM architecture do not guarantee the timing of instructions unless the DIT bit is set. Fortunately, that bit can be set on all privilege levels; unfortunately, that bit only exists on these newer implementations of the ARM architecture, and the flag to detect whether it exists is not accessible on all privilege levels. How to obtain that flag varies depending on the operating system, but Rust has a good implementation of that on its standard library. This means that runtime detection introduces a dependency on std (enabled by the "std" feature, which is enabled by default); compile-time detection is always available.

This release is a candidate for becoming the 1.0 release. In preparation for that, it uses the 2024 edition, which enables the new resolver which will allow future updates to the set of architectures which can use the inline assembly implementation of optimizer_hide(), without breaking downstream crates (for instance, s390x and arm64ec were stabilized in Rust 1.84.0).

  • Rewrite the generic implementation to process one word at a time, instead of byte by byte. Depending on the architecture, this means 8 bytes or 4 bytes processed on each loop iteration.

... (truncated)

Commits

Updates derive_more from 1.0.0 to 2.1.1

Release notes

Sourced from derive_more's releases.

2.1.1

API docs Changelog

2.1.0

Added

  • Support #[display(rename_all = "<casing>")] attribute to change output for implicit naming of unit enum variants or unit structs when deriving Display. (#443)
  • Support #[from_str(rename_all = "<casing>")] attribute for unit enum variants and unit structs when deriving FromStr. (#467)
  • Support Option fields for Error::source() in Error derive. (#459)
  • Support structs with no fields in FromStr derive. (#469)
  • Add PartialEq derive similar to std's one, but considering generics correctly, and implementing ne() method as well. (#473, #475)
  • Add Eq derive similar to std's one, but considering generics correctly. (#479)
  • Proxy-pass #[allow]/#[expect] attributes of the type in Constructor derive. (#477)
  • Support Deref and DerefMut derives for enums. (#485)
  • Support custom error in FromStr derive. (#494)
  • Support custom error in TryInto derive. (#503)
  • Support skipping fields in Add-like, AddAssign-like, Mul-like and MulAssign-like derives. (#472)

Changed

  • The minimum supported Rust version (MSRV) is now Rust 1.81. (#466)
  • Add-like, AddAssign-like, Mul-like and MulAssign-like derives now infer trait bounds for generics structurally (bound field types instead of type parameters directly). (#472)

Fixed

  • Suppress deprecation warnings in generated code. (#454)
  • Silent no-op when #[try_from(repr)] attribute is not specified for TryFrom derive. (#458)
  • Missing trait bounds in AsRef/AsMut derives when associative types are involved. (#474)
  • Erroneous code generated in Try/TryInto derives when Self type is present in the struct or enum definition. (#489)
  • Dependency on unstable feature(error_generic_member_access) in Error derive when using Backtrace on a non-nightly toolchain. (#513)
  • Broken support for #[<display-trait>("default formatting")] attribute without {_variant} being used as default for enum variants without explicit formatting. (#495)

New Contributors

Full Changelog: JelteF/derive_more@v2.0.1...v2.1.0

2.0.1

API docs Changelog

... (truncated)

Changelog

Sourced from derive_more's changelog.

2.1.1 - 2025-12-22

Fixed

  • .as_dyn_error() method hygiene inside Error derive expansion. (#527)

2.1.0 - 2025-12-02

Added

  • Support #[display(rename_all = "<casing>")] attribute to change output for implicit naming of unit enum variants or unit structs when deriving Display. (#443)
  • Support #[from_str(rename_all = "<casing>")] attribute for unit enum variants and unit structs when deriving FromStr. (#467)
  • Support Option fields for Error::source() in Error derive. (#459)
  • Support structs with no fields in FromStr derive. (#469)
  • Add PartialEq derive similar to std's one, but considering generics correctly, and implementing ne() method as well. (#473, #475)
  • Add Eq derive similar to std's one, but considering generics correctly. (#479)
  • Proxy-pass #[allow]/#[expect] attributes of the type in Constructor derive. (#477)
  • Support Deref and DerefMut derives for enums. (#485)
  • Support custom error in FromStr derive. (#494)
  • Support custom error in TryInto derive. (#503)
  • Support skipping fields in Add-like, AddAssign-like, Mul-like and MulAssign-like derives. (#472)

Changed

  • The minimum supported Rust version (MSRV) is now Rust 1.81. (#466)
  • Add-like, AddAssign-like, Mul-like and MulAssign-like derives now infer trait bounds for generics structurally (bound field types instead of type parameters directly). (#472)

Fixed

... (truncated)

Commits
  • f7bb41a Correct release date
  • 289988a Prepare 2.1.1 release (#529)
  • d820ec6 Fix derive(Error) expansion hygiene (#527, #526)
  • 5627282 Remove glob imports in derive(From) tests to mend 1.94 nightly Rust regress...
  • c354bad Prepare 2.1.0 release (#521)
  • 983875f Allow using enum-level attributes for non-Display formatting traits as defa...
  • 2d3805b Allow skipping fields for Add/AddAssign/Mul/MulAssign-like derives (#...
  • 1b5d314 Upgrade convert_case requirement from 0.9 to 0.10 version (#520)
  • c32d0a0 Upgrade actions/checkout from 5 to 6 version (#519)
  • 905f5a3 Upgrade convert_case crate from 0.8 to 0.9 version (#517)
  • Additional commits viewable in compare view

Updates digest from 0.10.7 to 0.11.3

Commits
  • 2fb9ed8 Release digest v0.11.3 (#2402)
  • 086cf38 digest: add TryCustomizedInit trait (#2395)
  • 9488e7e signature v3.0.0 (#2400)
  • 2917d19 build(deps): bump the all-deps group across 1 directory with 4 updates (#2398)
  • 7b029ba signature: add AsyncVerifier, AsyncMultipartVerifier, `AsyncDigestVerifie...
  • c6d4dd7 elliptic-curve v0.14.0-rc.32 (#2399)
  • f2069a2 elliptic-curve: bump pkcs8 to v0.11 (#2397)
  • 8250383 elliptic-curve: bump pkcs8 to v0.11.0-rc.12 (#2396)
  • 54e464f signature: remove long-winded intro section in rustdoc (#2392)
  • 5cb62a4 signature: enable/fix workspace-level lints; reformat docs (#2391)
  • Additional commits viewable in compare view

Updates fancy-regex from 0.16.2 to 0.19.0

Release notes

Sourced from fancy-regex's releases.

0.19.0

Added

  • Add BytesMode and the RegexInput trait so the matching and capture APIs can operate on strings or bytes, and allows to opt out of unicode handling if desired (#248)
    • Also allows searching within a range without slicing (#253)
    • Assertions can be overridden at runtime, if the regex builder allow_input_assertion_overrides option was used (#254)
    • Search can be performed in anchored mode, searching only at the start position specified (#263)
  • Add experimental seek optimization to only invoke the VM at candidate positions where a match could occur (#246)
  • Add RegexBuilder::disallow_empty_match_at_eof_after_newline to reject empty matches at the end of the haystack following a trailing newline, to match Oniguruma behavior (#247)
  • Add RegexSet API for efficiently matching multiple patterns against the same text (#255)

Changed

  • Case-insensitive backreference comparison of non-ASCII text now uses direct Unicode simple case folding instead of building a regex engine per comparison, which makes patterns like (?i)(\w+)\1 orders of magnitude faster on non-ASCII haystacks. The comparison is now strict fold equality over the captured text's byte-length window: a case-folded prefix of the window no longer counts as a match (previously a substring search could accept one and misalign the match end)
  • Compilation performance: delegated regex-automata engines (including the whole pattern in the easy case) are now built from a directly-constructed Hir instead of a re-serialized pattern string, and RegexSet parses each pattern once for both of its set-wide engines instead of three times. This reduces compile time and peak compile memory, especially for RegexSet and small easy patterns
  • Match performance: the backtracking VM's working memory (saves, backtrack stack, delegate slots) is pooled and reused across runs, making is_match/find/find_iter and RegexSet candidate verification allocation-free per call; RegexSet::find_input no longer allocates at failed candidate positions. Short and repeated matches improve substantially (up to ~30% for small patterns, ~10% for find_iter over many matches); single very long backtracking runs, where per-run setup is fully amortized anyway, can be a few percent slower
  • Matches, CaptureMatches, Captures, and SubCaptureMatches are now generic over RegexInput, which is a breaking change for code that named these types explicitly (#248)
  • Patterns no longer force Unicode mode during parsing, and inline (?u) / (?-u) flags are accepted when they agree with the builder configuration

Fixed

  • Fix bug whereby inline flags were not overriding the builder options (#247)
  • Fix bug whereby \G optimizations were applying where they shouldn't, giving wrong results (#256)
  • Support Oniguruma quantifier parsing rules, whereby swapped ordering causes possessiveness, + only causes possessiveness after ?, * or + (#258)

Upgrade guide

If you previously stored i.e. Captures, you would need to change the type to Captures<str> to get the code to compile.

0.18.0

Added

  • Add support for \N to mean any character except newline, for Oniguruma compatibility (#206)
  • Add support for (*FAIL) backtracking control verb (#210)
  • Add support for more \p{...} and \P{...} aliases, for Oniguruma compatibility (#207)
  • Add support for word boundaries and zero-length fancy patterns inside variable lookbehinds (at top level) (#216)
  • Add support for \R to mean general newline, matching all common line break characters, treating \r\n atomically (#220)
  • Add support for the regex crate's (?R) CRLF mode flag (#238)
  • Add support for subroutine calls (including recursion up to 20 levels deep, matching Oniguruma behavior) \g<1> (#230)
  • Add support for Oniguruma's absent repeater (?~abc) (#233)
  • Add support for ignoring empty matches (#240)
  • Add support for treating unnamed capture groups as non-capturing when named groups exist (#241)

Changed

  • RegexBuilder can now build multiple patterns with the same options (#213)
  • Parsing of capture group names is now more lenient (#241)

Fixed

  • Fixed bug with parsing nested character classes containing unescaped ] (#211)

0.17.0

Added

  • Add support for "easy" variable-length lookbehinds (enabled via new feature flag) (#194, #196)
  • Add support for more word boundaries: \b{start}, \b{end}, \b{start-half}, \b{end-half} (#193)
  • Allow {...} repetition syntax after assertions (except in Oniguruma mode) (#193)
  • Add Oniguruma mode flag to playground (#199)

Changed

  • Rewrite Theory section of Readme in a more formal style (#187)
  • Box CompileError in Error enum to reduce size (#204)
  • Bail out early when \G fails to match for increased performance (#198)

... (truncated)

Changelog

Sourced from fancy-regex's changelog.

[0.19.0] - 2026-07-28

Added

  • Add BytesMode and the RegexInput trait so the matching and capture APIs can operate on strings or bytes, and allows to opt out of unicode handling if desired (#248)
    • Also allows searching within a range without slicing (#253)
    • Assertions can be overridden at runtime, if the regex builder allow_input_assertion_overrides option was used (#254)
    • Search can be performed in anchored mode, searching only at the start position specified (#263)
  • Add experimental seek optimization to only invoke the VM at candidate positions where a match could occur (#246)
  • Add RegexBuilder::disallow_empty_match_at_eof_after_newline to reject empty matches at the end of the haystack following a trailing newline, to match Oniguruma behavior (#247)
  • Add RegexSet API for efficiently matching multiple patterns against the same text (#255)

Changed

  • Case-insensitive backreference comparison of non-ASCII text now uses direct Unicode simple case folding instead of building a regex engine per comparison, which makes patterns like (?i)(\w+)\1 orders of magnitude faster on non-ASCII haystacks. The comparison is now strict fold equality over the captured text's byte-length window: a case-folded prefix of the window no longer counts as a match (previously a substring search could accept one and misalign the match end)
  • Compilation performance: delegated regex-automata engines (including the whole pattern in the easy case) are now built from a directly-constructed Hir instead of a re-serialized pattern string, and RegexSet parses each pattern once for both of its set-wide engines instead of three times. This reduces compile time and peak compile memory, especially for RegexSet and small easy patterns
  • Match performance: the backtracking VM's working memory (saves, backtrack stack, delegate slots) is pooled and reused across runs, making is_match/find/find_iter and RegexSet candidate verification allocation-free per call; RegexSet::find_input no longer allocates at failed candidate positions. Short and repeated matches improve substantially (up to ~30% for small patterns, ~10% for find_iter over many matches); single very long backtracking runs, where per-run setup is fully amortized anyway, can be a few percent slower
  • Matches, CaptureMatches, Captures, and SubCaptureMatches are now generic over RegexInput, which is a breaking change for code that named these types explicitly (#248)
  • Patterns no longer force Unicode mode during parsing, and inline (?u) / (?-u) flags are accepted when they agree with the builder configuration

Fixed

  • Fix bug whereby inline flags were not overriding the builder options (#247)
  • Fix bug whereby \G optimizations were applying where they shouldn't, giving wrong results (#256)
  • Support Oniguruma quantifier parsing rules, whereby swapped ordering causes possessiveness, + only causes possessiveness after ?, * or + (#258)

Upgrade guide

If you previously stored i.e. Captures, you would need to change the type to Captures<str> to get the code to compile.

[0.18.0] - 2026-04-24

Added

  • Add support for \N to mean any character except newline, for Oniguruma compatibility (#206)
  • Add support for (*FAIL) backtracking control verb (#210)
  • Add support for more \p{...} and \P{...} aliases, for Oniguruma compatibility (#207)
  • Add support for word boundaries and zero-length fancy patterns inside variable lookbehinds (at top level) (#216)
  • Add support for \R to mean general newline, matching all common line break characters, treating \r\n atomically (#220)
  • Add support for the regex crate's (?R) CRLF mode flag (#238)
  • Add support for subroutine calls (including recursion up to 20 levels deep, matching Oniguruma behavior) \g<1> (#230)
  • Add support for Oniguruma's absent repeater (?~abc) (#233)
  • Add support for ignoring empty matches (#240)
  • Add support for treating unnamed capture groups as non-capturing when named groups exist (#241)

Changed

  • RegexBuilder can now build multiple patterns with the same options (#213)
  • Parsing of capture group names is now more lenient (#241)

Fixed

  • Fixed bug with parsing nested character classes containing unescaped ] (#211)

[0.17.0] - 2025-12-13

Added

  • Add support for "easy" variable-length lookbehinds (enabled via new feature flag) (#194, #196)
  • Add support for more word boundaries: \b{start}, \b{end}, \b{start-half}, \b{end-half} (#193)
  • Allow {...} repetition syntax after assertions (except in Oniguruma mode) (#193)
  • Add Oniguruma mode flag to playground (#199)

Changed

  • Rewrite Theory section of Readme in a more formal style (#187)
  • Box CompileError in Error enum to reduce size (#204)
  • Bail out early when \G fails to match for increased performance (#198)

... (truncated)

Commits
  • e8d6986 Version 0.19.0
  • af79ee3 Merge pull request #267 from fancy-regex/regex-automata-bump
  • 9d6b2db bump regex-automata to fix some seek bugs
  • 3d04e3a Merge pull request #266 from fancy-regex/optimize_keepout
  • f44e0a5 Merge pull request #265 from fancy-regex/reduce_catastrophic_backtracking
  • e480dc4 Merge pull request #264 from fancy-regex/compilation_performance
  • 35f8efa add note about optimizer
  • 1f7a220 Address code review: fix spelling, add comment about has_descendant
  • 4712936 Add \K (KeepOut) optimization: delegate root-level \K patterns to regex-automata
  • 5496414 fix: correct asymmetric repeat optimization in build_concat_repeat_triplet
  • Additional commits viewable in compare view

Updates fs4 from 0.9.1 to 1.1.0

Release notes

Sourced from fs4's releases.

v1.1.0

Changes

  • Consolidate FileExt and AsyncFileExt into single crate-root traits (fs4::FileExt, fs4::AsyncFileExt) instead of generating a distinct trait per backend module. The per-backend modules (fs4::tokio, fs4::async_std, fs4::smol, fs4::fs_err2, fs4::fs_err3, fs4::fs_err2_tokio, fs4::fs_err3_tokio) now re-export the unified crate-root trait. Method-call sites that import the trait via use continue to compile unchanged; code that named two backend traits as distinct types will see them unify.
  • Add blanket impls impl<F: FileExt + ?Sized> FileExt for &F and impl<F: AsyncFileExt + ?Sized> AsyncFileExt for &F, so the extension methods are now callable through shared references.
  • Seal FileExt and AsyncFileExt via a private sealed::Sealed supertrait, so the set of implementing types is closed to the concrete file types fs4 already supports (and references to them). This locks in the freedom to add methods to either trait in future minor releases without breaking downstream impls.
  • Add DynAsyncFileExt, an object-safe mirror of AsyncFileExt whose async methods return BoxFuture<'_, T> (alias for Pin<Box<dyn Future<Output = T> + Send + '_>>). Use it whenever type erasure is needed (Box<dyn DynAsyncFileExt>, &dyn DynAsyncFileExt); prefer the static AsyncFileExt for generic code since it has no allocation or dynamic-dispatch overhead. Every type implementing AsyncFileExt also implements DynAsyncFileExt, and the trait is sealed.
  • Mark the delegating methods #[inline(always)] (skipped under tarpaulin coverage builds).

v1.0.0

1.0.0

Breakage

  • Renamed FileExt::lock_exclusive / AsyncFileExt::lock_exclusive to lock, matching the stabilized [std::fs::File::lock] API.
  • Renamed FileExt::try_lock_exclusive / AsyncFileExt::try_lock_exclusive to try_lock, matching [std::fs::File::try_lock].
  • Changed the return type of try_lock and try_lock_shared from std::io::Result<bool> to Result<(), TryLockError>. Ok(()) still indicates the lock was acquired; Err(TryLockError::WouldBlock) now indicates the lock is held by another handle. This matches the stable [std::fs::File::try_lock] signature (Ok(false) was the nightly shape prior to 1.89).
  • Removed the top-level lock_contended_error() helper. Use TryLockError::WouldBlock instead.
  • Flattened the fs_std module: the FileExt trait for std::fs::File now lives at the crate root. Update imports from

... (truncated)

Changelog

Sourced from fs4's changelog.

1.1.0

Changes

  • Consolidate FileExt and AsyncFileExt into single crate-root traits (fs4::FileExt, fs4::AsyncFileExt) instead of generating a distinct trait per backend module. The per-backend modules (fs4::tokio, fs4::async_std, fs4::smol, fs4::fs_err2, fs4::fs_err3, fs4::fs_err2_tokio, fs4::fs_err3_tokio) now re-export the unified crate-root trait. Method-call sites that import the trait via use continue to compile unchanged; code that named two backend traits as distinct types will see them unify.
  • Add blanket impls impl<F: FileExt + ?Sized> FileExt for &F and impl<F: AsyncFileExt + ?Sized> AsyncFileExt for &F, so the extension methods are now callable through shared references.
  • Seal FileExt and AsyncFileExt via a private sealed::Sealed supertrait, so the set of implementing types is closed to the concrete file types fs4 already supports (and references to them). This locks in the freedom to add methods to either trait in future minor releases without breaking downstream impls.
  • Add DynAsyncFileExt, an object-safe mirror of AsyncFileExt whose async methods return BoxFuture<'_, T> (alias for Pin<Box<dyn Future<Output = T> + Send + '_>>). Use it whenever type erasure is needed (Box<dyn DynAsyncFileExt>, &dyn DynAsyncFileExt); prefer the static AsyncFileExt for generic code since it has no allocation or dynamic-dispatch overhead. Every type implementing AsyncFileExt also implements DynAsyncFileExt, and the trait is sealed.
  • Mark the delegating methods #[inline(always)] (skipped under tarpaulin coverage builds).

1.0.1

Fixes

  • Unix allocate: short-circuit on allocated blocks (metadata().blocks() * 512 >= len) instead of logical EOF. The previous metadata().len() >= len check silently turned allocate into a no-op on sparse files (logical length large, zero blocks reserved), violating the documented preallocation guarantee. The new check still skips the macOS F_PREALLOCATE re-allocate-ENOSPC path from #15, since it asks the right question: "are the blocks already reserved?" Applies to both the sync and async implementations.
  • Windows statvfs: route the three GetDiskFreeSpaceExW outputs correctly. free_space now comes from lpTotalNumberOfFreeBytes (volume-wide, quota-independent), available_space from lpFreeBytesAva...

    Description has been truncated

… updates

Bumps the rust-workspace group with 34 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [base64](https://github.com/marshallpierce/rust-base64) | `0.22.1` | `0.23.0` |
| [blake3](https://github.com/BLAKE3-team/BLAKE3) | `1.8.2` | `1.8.5` |
| [clap](https://github.com/clap-rs/clap) | `4.6.4` | `4.6.5` |
| [console](https://github.com/console-rs/console) | `0.15.11` | `0.16.4` |
| [constant_time_eq](https://github.com/cesarb/constant_time_eq) | `0.3.1` | `0.4.2` |
| [derive_more](https://github.com/JelteF/derive_more) | `1.0.0` | `2.1.1` |
| [digest](https://github.com/RustCrypto/traits) | `0.10.7` | `0.11.3` |
| [fancy-regex](https://github.com/fancy-regex/fancy-regex) | `0.16.2` | `0.19.0` |
| [fs4](https://github.com/al8n/fs4) | `0.9.1` | `1.1.0` |
| [futures-intrusive](https://github.com/Matthias247/futures-intrusive) | `0.4.2` | `0.5.0` |
| [hashbrown](https://github.com/rust-lang/hashbrown) | `0.16.1` | `0.17.1` |
| [itertools](https://github.com/rust-itertools/itertools) | `0.14.0` | `0.15.0` |
| [lru](https://github.com/jeromefroe/lru-rs) | `0.16.4` | `0.18.1` |
| [multimap](https://github.com/havarnov/multimap) | `0.8.3` | `0.10.1` |
| [nix](https://github.com/nix-rust/nix) | `0.30.1` | `0.31.3` |
| [object](https://github.com/gimli-rs/object) | `0.36.7` | `0.39.1` |
| [os_str_bytes](https://github.com/dylni/os_str_bytes) | `6.6.1` | `7.2.0` |
| [parking_lot](https://github.com/Amanieu/parking_lot) | `0.11.2` | `0.12.5` |
| [rusqlite](https://github.com/rusqlite/rusqlite) | `0.37.0` | `0.40.1` |
| [sha1](https://github.com/RustCrypto/hashes) | `0.10.7` | `0.11.0` |
| [sha2](https://github.com/RustCrypto/hashes) | `0.10.9` | `0.11.0` |
| [shlex](https://github.com/comex/rust-shlex) | `1.3.0` | `2.0.1` |
| [similar](https://github.com/mitsuhiko/similar) | `2.7.0` | `3.1.1` |
| [sysinfo](https://github.com/GuillaumeGomez/sysinfo) | `0.38.4` | `0.39.6` |
| [termimad](https://github.com/Canop/termimad) | `0.34.1` | `0.35.1` |
| [textwrap](https://github.com/mgeisler/textwrap) | `0.11.0` | `0.16.2` |
| [tikv-jemallocator](https://github.com/tikv/jemallocator) | `0.6.1` | `0.7.0` |
| [tower-lsp-server](https://github.com/tower-lsp-community/tower-lsp-server) | `0.22.1` | `0.23.0` |
| [twox-hash](https://github.com/shepmaster/twox-hash) | `1.6.3` | `2.1.2` |
| [erased-serde](https://github.com/dtolnay/erased-serde) | `0.3.31` | `0.4.10` |
| [atomic](https://github.com/Amanieu/atomic-rs) | `0.5.3` | `0.6.1` |
| [rustyline](https://github.com/kkawakam/rustyline) | `14.0.0` | `18.0.1` |
| [annotate-snippets](https://github.com/rust-lang/annotate-snippets-rs) | `0.9.2` | `0.12.16` |
| [logos](https://github.com/maciejhirsz/logos) | `0.15.1` | `0.16.1` |



Updates `base64` from 0.22.1 to 0.23.0
- [Changelog](https://github.com/marshallpierce/rust-base64/blob/master/RELEASE-NOTES.md)
- [Commits](marshallpierce/rust-base64@v0.22.1...v0.23.0)

Updates `blake3` from 1.8.2 to 1.8.5
- [Release notes](https://github.com/BLAKE3-team/BLAKE3/releases)
- [Commits](BLAKE3-team/BLAKE3@1.8.2...1.8.5)

Updates `clap` from 4.6.4 to 4.6.5
- [Release notes](https://github.com/clap-rs/clap/releases)
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md)
- [Commits](clap-rs/clap@clap_complete-v4.6.4...clap_complete-v4.6.5)

Updates `console` from 0.15.11 to 0.16.4
- [Release notes](https://github.com/console-rs/console/releases)
- [Changelog](https://github.com/console-rs/console/blob/main/CHANGELOG.md)
- [Commits](console-rs/console@0.15.11...0.16.4)

Updates `constant_time_eq` from 0.3.1 to 0.4.2
- [Changelog](https://github.com/cesarb/constant_time_eq/blob/main/CHANGES)
- [Commits](cesarb/constant_time_eq@0.3.1...0.4.2)

Updates `derive_more` from 1.0.0 to 2.1.1
- [Release notes](https://github.com/JelteF/derive_more/releases)
- [Changelog](https://github.com/JelteF/derive_more/blob/master/CHANGELOG.md)
- [Commits](JelteF/derive_more@v1.0.0...v2.1.1)

Updates `digest` from 0.10.7 to 0.11.3
- [Commits](RustCrypto/traits@digest-v0.10.7...digest-v0.11.3)

Updates `fancy-regex` from 0.16.2 to 0.19.0
- [Release notes](https://github.com/fancy-regex/fancy-regex/releases)
- [Changelog](https://github.com/fancy-regex/fancy-regex/blob/main/CHANGELOG.md)
- [Commits](fancy-regex/fancy-regex@0.16.2...0.19.0)

Updates `fs4` from 0.9.1 to 1.1.0
- [Release notes](https://github.com/al8n/fs4/releases)
- [Changelog](https://github.com/al8n/fs4/blob/main/CHANGELOG.md)
- [Commits](https://github.com/al8n/fs4/commits/1.1.0)

Updates `futures-intrusive` from 0.4.2 to 0.5.0
- [Commits](https://github.com/Matthias247/futures-intrusive/commits)

Updates `hashbrown` from 0.16.1 to 0.17.1
- [Release notes](https://github.com/rust-lang/hashbrown/releases)
- [Changelog](https://github.com/rust-lang/hashbrown/blob/main/CHANGELOG.md)
- [Commits](rust-lang/hashbrown@v0.16.1...v0.17.1)

Updates `itertools` from 0.14.0 to 0.15.0
- [Changelog](https://github.com/rust-itertools/itertools/blob/master/CHANGELOG.md)
- [Commits](rust-itertools/itertools@v0.14.0...v0.15.0)

Updates `lru` from 0.16.4 to 0.18.1
- [Changelog](https://github.com/jeromefroe/lru-rs/blob/master/CHANGELOG.md)
- [Commits](jeromefroe/lru-rs@0.16.4...0.18.1)

Updates `multimap` from 0.8.3 to 0.10.1
- [Commits](https://github.com/havarnov/multimap/commits)

Updates `nix` from 0.30.1 to 0.31.3
- [Changelog](https://github.com/nix-rust/nix/blob/master/CHANGELOG.md)
- [Commits](nix-rust/nix@v0.30.1...v0.31.3)

Updates `object` from 0.36.7 to 0.39.1
- [Changelog](https://github.com/gimli-rs/object/blob/main/CHANGELOG.md)
- [Commits](gimli-rs/object@0.36.7...v0.39.1)

Updates `os_str_bytes` from 6.6.1 to 7.2.0
- [Release notes](https://github.com/dylni/os_str_bytes/releases)
- [Commits](dylni/os_str_bytes@6.6.1...7.2.0)

Updates `parking_lot` from 0.11.2 to 0.12.5
- [Release notes](https://github.com/Amanieu/parking_lot/releases)
- [Changelog](https://github.com/Amanieu/parking_lot/blob/master/CHANGELOG.md)
- [Commits](Amanieu/parking_lot@0.11.2...parking_lot-v0.12.5)

Updates `rusqlite` from 0.37.0 to 0.40.1
- [Release notes](https://github.com/rusqlite/rusqlite/releases)
- [Changelog](https://github.com/rusqlite/rusqlite/blob/master/Changelog.md)
- [Commits](rusqlite/rusqlite@v0.37.0...v0.40.1)

Updates `sha1` from 0.10.7 to 0.11.0
- [Commits](RustCrypto/hashes@sha1-v0.10.7...sha1-v0.11.0)

Updates `sha2` from 0.10.9 to 0.11.0
- [Commits](RustCrypto/hashes@sha2-v0.10.9...sha2-v0.11.0)

Updates `shlex` from 1.3.0 to 2.0.1
- [Changelog](https://github.com/comex/rust-shlex/blob/master/CHANGELOG.md)
- [Commits](https://github.com/comex/rust-shlex/commits)

Updates `similar` from 2.7.0 to 3.1.1
- [Changelog](https://github.com/mitsuhiko/similar/blob/main/CHANGELOG.md)
- [Commits](mitsuhiko/similar@2.7.0...3.1.1)

Updates `sysinfo` from 0.38.4 to 0.39.6
- [Changelog](https://github.com/GuillaumeGomez/sysinfo/blob/main/CHANGELOG.md)
- [Commits](GuillaumeGomez/sysinfo@v0.38.4...v0.39.6)

Updates `termimad` from 0.34.1 to 0.35.1
- [Changelog](https://github.com/Canop/termimad/blob/main/CHANGELOG.md)
- [Commits](https://github.com/Canop/termimad/commits)

Updates `textwrap` from 0.11.0 to 0.16.2
- [Release notes](https://github.com/mgeisler/textwrap/releases)
- [Changelog](https://github.com/mgeisler/textwrap/blob/main/CHANGELOG.md)
- [Commits](mgeisler/textwrap@0.11.0...0.16.2)

Updates `tikv-jemallocator` from 0.6.1 to 0.7.0
- [Release notes](https://github.com/tikv/jemallocator/releases)
- [Changelog](https://github.com/tikv/jemallocator/blob/main/CHANGELOG.md)
- [Commits](tikv/jemallocator@0.6.1...0.7.0)

Updates `tower-lsp-server` from 0.22.1 to 0.23.0
- [Release notes](https://github.com/tower-lsp-community/tower-lsp-server/releases)
- [Changelog](https://github.com/tower-lsp-community/tower-lsp-server/blob/main/CHANGELOG.md)
- [Commits](tower-lsp-community/tower-lsp-server@v0.22.1...v0.23.0)

Updates `twox-hash` from 1.6.3 to 2.1.2
- [Changelog](https://github.com/shepmaster/twox-hash/blob/main/CHANGELOG.md)
- [Commits](shepmaster/twox-hash@v1.6.3...v2.1.2)

Updates `erased-serde` from 0.3.31 to 0.4.10
- [Release notes](https://github.com/dtolnay/erased-serde/releases)
- [Commits](dtolnay/erased-serde@0.3.31...0.4.10)

Updates `atomic` from 0.5.3 to 0.6.1
- [Release notes](https://github.com/Amanieu/atomic-rs/releases)
- [Changelog](https://github.com/Amanieu/atomic-rs/blob/master/CHANGELOG.md)
- [Commits](Amanieu/atomic-rs@v0.5.3...v0.6.1)

Updates `rustyline` from 14.0.0 to 18.0.1
- [Release notes](https://github.com/kkawakam/rustyline/releases)
- [Changelog](https://github.com/kkawakam/rustyline/blob/master/History.md)
- [Commits](kkawakam/rustyline@v14.0.0...v18.0.1)

Updates `annotate-snippets` from 0.9.2 to 0.12.16
- [Release notes](https://github.com/rust-lang/annotate-snippets-rs/releases)
- [Changelog](https://github.com/rust-lang/annotate-snippets-rs/blob/main/CHANGELOG.md)
- [Commits](rust-lang/annotate-snippets-rs@0.9.2...0.12.16)

Updates `logos` from 0.15.1 to 0.16.1
- [Release notes](https://github.com/maciejhirsz/logos/releases)
- [Changelog](https://github.com/maciejhirsz/logos/blob/master/RELEASE-PROCESS.md)
- [Commits](maciejhirsz/logos@v0.15.1...v0.16.1)

---
updated-dependencies:
- dependency-name: base64
  dependency-version: 0.23.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: rust-workspace
- dependency-name: blake3
  dependency-version: 1.8.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: rust-workspace
- dependency-name: clap
  dependency-version: 4.6.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: rust-workspace
- dependency-name: console
  dependency-version: 0.16.4
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: rust-workspace
- dependency-name: constant_time_eq
  dependency-version: 0.4.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: rust-workspace
- dependency-name: derive_more
  dependency-version: 2.1.1
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: rust-workspace
- dependency-name: digest
  dependency-version: 0.11.3
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: rust-workspace
- dependency-name: fancy-regex
  dependency-version: 0.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: rust-workspace
- dependency-name: fs4
  dependency-version: 1.1.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: rust-workspace
- dependency-name: futures-intrusive
  dependency-version: 0.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: rust-workspace
- dependency-name: hashbrown
  dependency-version: 0.17.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: rust-workspace
- dependency-name: itertools
  dependency-version: 0.15.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: rust-workspace
- dependency-name: lru
  dependency-version: 0.18.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: rust-workspace
- dependency-name: multimap
  dependency-version: 0.10.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: rust-workspace
- dependency-name: nix
  dependency-version: 0.31.3
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: rust-workspace
- dependency-name: object
  dependency-version: 0.39.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: rust-workspace
- dependency-name: os_str_bytes
  dependency-version: 7.2.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: rust-workspace
- dependency-name: parking_lot
  dependency-version: 0.12.5
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: rust-workspace
- dependency-name: rusqlite
  dependency-version: 0.40.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: rust-workspace
- dependency-name: sha1
  dependency-version: 0.11.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: rust-workspace
- dependency-name: sha2
  dependency-version: 0.11.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: rust-workspace
- dependency-name: shlex
  dependency-version: 2.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: rust-workspace
- dependency-name: similar
  dependency-version: 3.1.1
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: rust-workspace
- dependency-name: sysinfo
  dependency-version: 0.39.6
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: rust-workspace
- dependency-name: termimad
  dependency-version: 0.35.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: rust-workspace
- dependency-name: textwrap
  dependency-version: 0.16.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: rust-workspace
- dependency-name: tikv-jemallocator
  dependency-version: 0.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: rust-workspace
- dependency-name: tower-lsp-server
  dependency-version: 0.23.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: rust-workspace
- dependency-name: twox-hash
  dependency-version: 2.1.2
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: rust-workspace
- dependency-name: erased-serde
  dependency-version: 0.4.10
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: rust-workspace
- dependency-name: atomic
  dependency-version: 0.6.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: rust-workspace
- dependency-name: rustyline
  dependency-version: 18.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: rust-workspace
- dependency-name: annotate-snippets
  dependency-version: 0.12.16
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: rust-workspace
- dependency-name: logos
  dependency-version: 0.16.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: rust-workspace
...

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 6, 2026
@windsornguyen

Copy link
Copy Markdown
Member

Closing this generated batch because it combines 34 Rust dependency updates, including semver-major changes, into one non-reviewable unit. We will replace it with compatibility-scoped groups whose tests and migration risk can be evaluated independently.

@dependabot @github

dependabot Bot commented on behalf of github Aug 11, 2026

Copy link
Copy Markdown
Contributor Author

This pull request was built based on a group rule. Closing it will not ignore any of these versions in future pull requests.

To ignore these dependencies, configure ignore rules in dependabot.yml

@dependabot
dependabot Bot deleted the dependabot/cargo/rust-workspace-0fa8f9f444 branch August 11, 2026 01:18
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.

1 participant