# What changed in futures

> 19 changes in futures 0.3 from its official release notes, upgrade guides and advisories: 1 breaking, 3 deprecations, 2 security, 5 new APIs and options. Each one cited. Sources checked 2026-11-12. HTML: https://unstale.sh/cargo/futures/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## futures 0.3

### Breaking changes

- The minimum supported Rust version for utility crates is now 1.71. (0.3.32) — [release notes](https://github.com/rust-lang/futures-rs/releases/tag/0.3.32)

### Security

- Fixes an unsound Send implementation for Iter. (0.3.33) — [release notes](https://github.com/rust-lang/futures-rs/releases/tag/0.3.33)
- Fixes an unsound Send implementation for IterPinRef. (0.3.33) — [release notes](https://github.com/rust-lang/futures-rs/releases/tag/0.3.33)

### Deprecations

- The pin_mut! macro is soft-deprecated in favor of std::pin::pin!. (0.3.32) — [release notes](https://github.com/rust-lang/futures-rs/releases/tag/0.3.32)
- The ready! macro is soft-deprecated in favor of std::task::ready!. (0.3.32) — [release notes](https://github.com/rust-lang/futures-rs/releases/tag/0.3.32)
- The mpsc receiver method try_next is deprecated. (0.3.32) — [release notes](https://github.com/rust-lang/futures-rs/releases/tag/0.3.32)

### New APIs and options

- Adds the portable-atomic-alloc feature and uses it in FuturesUnordered. (0.3.33) — [release notes](https://github.com/rust-lang/futures-rs/releases/tag/0.3.33)
- Re-exports alloc::task::Wake. (0.3.33) — [release notes](https://github.com/rust-lang/futures-rs/releases/tag/0.3.33)
- Adds clear to remove items from a FuturesOrdered collection. (0.3.32) — [release notes](https://github.com/rust-lang/futures-rs/releases/tag/0.3.32)
- Adds recv to mpsc receivers. (0.3.32) — [release notes](https://github.com/rust-lang/futures-rs/releases/tag/0.3.32)
- Adds try_recv to mpsc receivers. (0.3.32) — [release notes](https://github.com/rust-lang/futures-rs/releases/tag/0.3.32)

### Performance

- The release includes performance improvements. (0.3.32) — [release notes](https://github.com/rust-lang/futures-rs/releases/tag/0.3.32)

### Behavior and default changes

- Mutex::new can now be called in a const context. (0.3.32) — [release notes](https://github.com/rust-lang/futures-rs/releases/tag/0.3.32)
- The shared functionality now supports no_std. (0.3.32) — [release notes](https://github.com/rust-lang/futures-rs/releases/tag/0.3.32)

### Fixes and other changes

- Cloned wakers preserve their identity. (0.3.34) — [release notes](https://github.com/rust-lang/futures-rs/releases/tag/0.3.34)
- Fixes a stacked borrows violation in the compat01as03 implementation. (0.3.33) — [release notes](https://github.com/rust-lang/futures-rs/releases/tag/0.3.33)
- Fixes a memory leak in FuturesUnordered::IntoIter. (0.3.33) — [release notes](https://github.com/rust-lang/futures-rs/releases/tag/0.3.33)
- Fixes a soundness issue regarding exception safety in ReadLine. (0.3.33) — [release notes](https://github.com/rust-lang/futures-rs/releases/tag/0.3.33)
- sink::With now implements FusedStream. (0.3.32) — [release notes](https://github.com/rust-lang/futures-rs/releases/tag/0.3.32)
