Skip to content

thread_aware v0.8.0

Choose a tag to compare

@github-actions github-actions released this 09 Jul 07:37
ddbfcd1

⚠ Breaking Changes

  • ProcessorCount::Manual renamed to Exactly (#541)
    Callers matching or constructing ProcessorCount::Manual(n) must update to ProcessorCount::Exactly(n).

  • ProcessorCount is now #[non_exhaustive] (#541)
    Exhaustive match expressions over ProcessorCount outside this crate will no longer compile; add a wildcard arm.

  • thread_aware::storage module (Storage, Strategy) is no longer public (#493)
    Both were publicly documented in 0.7.5. They are now crate-private following the unreachable_pub lint audit. Downstream code referencing thread_aware::storage::Storage or thread_aware::storage::Strategy directly will fail to compile.

  • Internal-only items further restricted to pub(crate) (previously pub but undocumented/not part of the supported public surface): cell::DataFn<T>, closure::ErasedClosureOnce (#493)

✨ Features

  • Add ProcessorCount::AtMost(NonZero<usize>) — caps processor count, clamping to the available count on smaller machines instead of panicking (unlike Exactly) (#541)
  • Add opt-in, feature-gated ThreadAware impls for third-party crate types: bytes (Bytes, BytesMut), http (StatusCode, Method, Uri, HeaderMap, etc.), jiff02 (Timestamp, civil::DateTime, etc.), uuid (Uuid). None enabled by default; no extra deps unless opted in (#478)

🐛 Bug Fixes

  • Exclude non-source artifacts from published crate tarballs via an include allowlist (#526)

✔️ Tasks

  • Re-release all packages with LFS-free tarballs (#531)
  • Bump MSRV to Rust 1.93 (#492)

Migration Guide

Before (≤0.7.5) After (0.8.0)
ProcessorCount::Manual(n) ProcessorCount::Exactly(n)
Exhaustive match on ProcessorCount Add _ => wildcard arm
thread_aware::storage::Storage / ::Strategy No longer available — no public replacement; contact maintainers if you depend on this