An implementation of futures and streams featuring zero allocations, composability, and iterator-like interfaces.

futures, async, future



Zero-cost asynchronous programming in Rust

Build Status Rustc Version

Documentation | Website


Add this to your Cargo.toml:

futures-preview = "=0.3.0-alpha.18"

Now, you can use futures-rs:

use futures::future::Future; // Note: It's not `futures_preview`

The current futures-rs requires Rust 1.36 or later.

Feature std

Futures-rs works without the standard library, such as in bare metal environments. However, it has a significantly reduced API surface. To use futures-rs in a #[no_std] environment, use:

futures-preview = { version = "=0.3.0-alpha.18", default-features = false }

Feature async-await

The async-await feature provides several convenient features using unstable async/await. Note that this is an unstable feature, and upstream changes might prevent it from compiling. To use futures-rs with async/await, use:

futures-preview = { version = "=0.3.0-alpha.18", features = ["async-await", "nightly"] }

The current async-await feature requires Rust nightly 2019-07-29 or later.


This project is licensed under either of

at your option.


Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in futures-rs by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.