cargo / futures
futures
What changed in futures 0.3, from its official release notes, upgrade guides and advisories. Sources checked 2026-11-12.
1 breaking2 security3 deprecations5 new APIs and options1 performance2 behavior and defaults5 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli initfutures 0.319 changes
Breaking changes 1
The minimum supported Rust version for utility crates is now 1.71.
Security 2
Fixes an unsound Send implementation for Iter.
Fixes an unsound Send implementation for IterPinRef.
Deprecations 3
The pin_mut! macro is soft-deprecated in favor of std::pin::pin!.
The ready! macro is soft-deprecated in favor of std::task::ready!.
The mpsc receiver method try_next is deprecated.
New APIs and options 5
Adds the portable-atomic-alloc feature and uses it in FuturesUnordered.
Re-exports alloc::task::Wake.
Adds clear to remove items from a FuturesOrdered collection.
Adds recv to mpsc receivers.
Adds try_recv to mpsc receivers.
Performance 1
The release includes performance improvements.
Behavior and default changes 2
Mutex::new can now be called in a const context.
The shared functionality now supports no_std.
Fixes and other changes 5
Cloned wakers preserve their identity.
Fixes a stacked borrows violation in the compat01as03 implementation.
Fixes a memory leak in FuturesUnordered::IntoIter.
Fixes a soundness issue regarding exception safety in ReadLine.
sink::With now implements FusedStream.