Building async Rust applications that need to wait on multiple concurrent operations like network requests or file I/O without blocking.
Writing embedded or no_std Rust code that requires async abstractions without a full operating system.
Composing and transforming streams of asynchronous values using combinator chains instead of nested callbacks.
Learning or teaching Rust async fundamentals using the official language-project abstractions.
| rust-lang/futures-rs | byron/dua-cli | alexpasmantier/television | |
|---|---|---|---|
| Stars | 5,857 | 5,846 | 5,872 |
| Language | Rust | Rust | Rust |
| Setup difficulty | moderate | easy | easy |
| Complexity | 4/5 | 1/5 | 1/5 |
| Audience | developer | developer | developer |
Figures from each repo's GitHub metadata at analysis time.
Add `futures = "0.3"` to Cargo.toml. Requires Rust 1.71+. For no_std use, disable default features and enable only what you need.
futures-rs is an official Rust library that provides building blocks for writing asynchronous code. Asynchronous programming lets a program do other work while waiting for slow operations, like network requests or file reads, rather than sitting idle. This library is part of the Rust programming language project itself and defines the core abstractions that make that pattern possible in Rust. The library includes key pieces like Stream, which is a sequence of values produced over time, and utility macros like join! and select! that let you wait on multiple asynchronous operations at once in a readable way. It also provides a collection of combinator methods that let you chain and transform asynchronous operations without deeply nested callbacks. One of the stated goals is zero cost: the abstractions in the library are designed so that using them does not add runtime overhead compared to writing the equivalent low-level code by hand. The library can also run in environments without an operating system, such as embedded hardware, by disabling its standard library features. To use it, you add a single line to your Rust project's dependency file and specify version 0.3. The library requires Rust version 1.71 or newer. The README is short and points to the documentation at docs.rs/futures and the project website for more detail.
Official Rust library providing core async programming abstractions including Stream, join!, and select! macros. Zero-cost, no_std compatible, and the foundation most Rust async code is built on.
Mainly Rust. The stack also includes Rust, async/await, no_std.
Dual-licensed under MIT and Apache 2.0. You can use it freely in open-source or commercial projects with minimal restrictions.
Setup difficulty is rated moderate, with roughly 30min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.