Crate features / futures
Feature flags · futures 0.3.34 · from crates.io 2026-10-24
futures features: what each one does, and the line to copy
Short answerfutures 0.3.34 has 12 features. By default it turns on std, async-await, executor; add default-features = false to start from nothing. It needs Rust 1.71 or newer.
Pick features
Every feature
| Feature | In default | Turns on |
|---|---|---|
alloc | futures-core/alloc, futures-task/alloc, futures-sink/alloc, futures-channel/alloc, futures-util/alloc | |
async-await | yes | futures-util/async-await, futures-util/async-await-macro |
bilock | futures-util/bilock | |
cfg-target-has-atomic | nothing else (a switch the code checks) | |
compat | std, futures-util/compat | |
executor | yes | std, futures-executor/std |
io-compat | compat, futures-util/io-compat | |
spin | futures-util/spin | |
std | yes | alloc, futures-core/std, futures-task/std, futures-io/std, futures-sink/std, futures-util/std, futures-util/io, futures-util/channel |
thread-pool | executor, futures-executor/thread-pool | |
unstable | futures-core/unstable, futures-task/unstable, futures-channel/unstable, futures-io/unstable, futures-util/unstable | |
write-all-vectored | futures-util/write-all-vectored |
dep:x turns on the optional dependency x; x/y turns on feature y of dependency x (with ?, only if x is already on).
MSRV history
The minimum Rust version futures declares (rust-version), and the release that changed it:
- 0.3.19 (2021-12-18): Rust 1.45
- 0.3.28 (2023-03-30): Rust 1.56
- 0.3.32 (2026-02-15): Rust 1.71
Stuck on an older compiler? Pin the last version that supports it, for example cargo update -p futures --precise <version>, or use resolver 3, which picks compatible versions for you.
More on futures
Real downloads, dependents and alternatives: futures crate data (2.4M real downloads a day, 26,505 dependents).
docs.rs feature list · crates.io · license MIT OR Apache-2.0 · edition 2018
Up next
Before you depend on itfutures crate dataReal downloads, dependents, alternatives.Read it next →Did this answer your question?