# rust-lang/futures-rs

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/rust-lang-futures-rs).**

5,870 stars · 690 forks · Rust · Apache-2.0

## Links

- GitHub: https://github.com/rust-lang/futures-rs
- Homepage: https://rust-lang.github.io/futures-rs/
- awesome-repositories: https://awesome-repositories.com/repository/rust-lang-futures-rs.md

## Topics

`async-foundations`

## Description

Zero-cost asynchronous programming in Rust

## Tags

### Programming Languages & Runtimes

- [Async Runtime Foundations](https://awesome-repositories.com/f/programming-languages-runtimes/async-runtime-foundations.md) — The core library providing Future, Stream, and Sink traits with combinators for zero-cost async programming in Rust.
- [Async-Await Flow Control](https://awesome-repositories.com/f/programming-languages-runtimes/async-await-flow-control.md) — Writes asynchronous code using the native async/await notation that integrates with the Future trait. ([source](https://rust-lang.github.io/futures-rs/blog/2018/07/19/futures-0.3.0-alpha.1.html))
- [Async I/O Traits](https://awesome-repositories.com/f/programming-languages-runtimes/async-i-o-runtimes/async-i-o-traits.md) — Reading from and writing to I/O sources without blocking using core asynchronous I/O traits.
- [Stream Combinators](https://awesome-repositories.com/f/programming-languages-runtimes/asynchronous-streams/stream-combinators.md) — Handling sequences of asynchronous values over time using the Stream trait and its combinators.
- [Trait Definitions](https://awesome-repositories.com/f/programming-languages-runtimes/asynchronous-streams/stream-combinators/trait-definitions.md) — Defines the Stream trait and combinators for composing and transforming sequences of asynchronous values.
- [Async Channel Endpoints](https://awesome-repositories.com/f/programming-languages-runtimes/language-features-paradigms/concurrency-models/concurrency/synchronization-primitives/channel-based-concurrency/async-channel-endpoints.md) — Exchanges data between concurrent tasks using channels whose endpoints implement Future, Stream, or Sink. ([source](https://rust-lang.github.io/futures-rs/blog/2018/07/19/futures-0.3.0-alpha.1.html))
- [Futures Version Migration Layers](https://awesome-repositories.com/f/programming-languages-runtimes/futures-version-migration-layers.md) — Provides conversion layers between futures 0.1 and 0.3 APIs, enabling gradual migration and mixed usage.
- [Async Test Executors](https://awesome-repositories.com/f/programming-languages-runtimes/language-features-paradigms/concurrency-models/concurrency/task-orchestration-frameworks/background-task-runners/async-test-executors.md) — Spawns a dedicated executor on a background thread to drive a future to completion without blocking the test. ([source](https://rust-lang.github.io/futures-rs/blog/2018/09/02/futures-0.3.0-alpha.4.html))

### Software Engineering & Architecture

- [Future, Stream, and Sink Abstractions](https://awesome-repositories.com/f/software-engineering-architecture/trait-based-service-abstractions/future-stream-and-sink-abstractions.md) — Defines the Future, Stream, and Sink traits as core abstractions for composing asynchronous workflows.
- [Ecosystem Interoperability](https://awesome-repositories.com/f/software-engineering-architecture/ecosystem-interoperability.md) — Interoperates between the 0.1 and 0.3 futures ecosystems to enable gradual migration and mixed usage of both versions. ([source](https://rust-lang.github.io/futures-rs/blog/2018/07/30/futures-0.3.0-alpha.2.html))
- [Async Test Harness Utilities](https://awesome-repositories.com/f/software-engineering-architecture/executable-activity-definitions/test-harnesses/async-test-harness-utilities.md) — Includes mock contexts, pinning macros, and assertion helpers for testing asynchronous code and stream behavior.
- [Future-Based Concurrency Frameworks](https://awesome-repositories.com/f/software-engineering-architecture/future-based-concurrency-frameworks.md) — Joins multiple futures into a single output or selects the first one to complete among them. ([source](https://cdn.jsdelivr.net/gh/rust-lang/futures-rs@master/README.md))
- [Futures API Bridges](https://awesome-repositories.com/f/software-engineering-architecture/legacy-migration-strategies/app-version-migrations/futures-api-bridges.md) — Bridge traits and converters that enable interoperability between the legacy futures 0.1 and modern 0.3 ecosystems.
- [Asynchronous Task Executors](https://awesome-repositories.com/f/software-engineering-architecture/task-scheduling/asynchronous-schedulers/asynchronous-thread-schedulers/custom-thread-executors/asynchronous-task-executors.md) — Executes asynchronous tasks using a thread pool or a thread-local executor. ([source](https://rust-lang.github.io/futures-rs/blog/2018/07/19/futures-0.3.0-alpha.1.html))
- [Async Context Spawning](https://awesome-repositories.com/f/software-engineering-architecture/task-scheduling/parallel-task-executors/parallel-task-spawning/async-context-spawning.md) — Spawns a future to completion from inside async functions, closures, or blocks using a macro. ([source](https://rust-lang.github.io/futures-rs/blog/2018/08/15/futures-0.3.0-alpha.3.html))
- [Async Task Spawning](https://awesome-repositories.com/f/software-engineering-architecture/task-scheduling/parallel-task-executors/parallel-task-spawning/async-task-spawning.md) — Offers executor traits and macros for spawning and driving futures to completion in various runtime contexts.
- [Executor-Agnostic Spawning](https://awesome-repositories.com/f/software-engineering-architecture/task-scheduling/parallel-task-executors/parallel-task-spawning/async-task-spawning/executor-agnostic-spawning.md) — Spawns futures on executors from both async and synchronous contexts through trait methods and macros.
- [Async IO Trait Converters](https://awesome-repositories.com/f/software-engineering-architecture/legacy-migration-strategies/app-version-migrations/futures-api-bridges/async-io-trait-converters.md) — Translates between futures 0.3 and tokio-io AsyncRead and AsyncWrite traits using dedicated combinators. ([source](https://rust-lang.github.io/futures-rs/blog/2019/04/18/compatibility-layer.html))
- [Executor Trait Bridges](https://awesome-repositories.com/f/software-engineering-architecture/legacy-migration-strategies/app-version-migrations/futures-api-bridges/executor-trait-bridges.md) — Converts between the futures 0.1 Executor trait and the futures 0.3 Spawn trait to spawn tasks across different API versions. ([source](https://rust-lang.github.io/futures-rs/blog/2019/04/18/compatibility-layer.html))
- [Legacy Executor Runners](https://awesome-repositories.com/f/software-engineering-architecture/legacy-migration-strategies/app-version-migrations/futures-api-bridges/legacy-executor-runners.md) — Converts a standard future into a futures 0.1 future so it can execute on executors built for the older version. ([source](https://rust-lang.github.io/futures-rs/blog/2019/04/18/compatibility-layer.html))
- [Legacy Future Adapters](https://awesome-repositories.com/f/software-engineering-architecture/legacy-migration-strategies/app-version-migrations/futures-api-bridges/legacy-future-adapters.md) — Converts a futures 0.1 future into a standard future so it can be used inside async functions. ([source](https://rust-lang.github.io/futures-rs/blog/2019/04/18/compatibility-layer.html))

### Part of an Awesome List

- [Async Programming](https://awesome-repositories.com/f/awesome-lists/devtools/async-programming.md) — Writing asynchronous code using Rust's async/await syntax with the Future trait and executor integration.
- [Asynchronous Programming](https://awesome-repositories.com/f/awesome-lists/devtools/asynchronous-programming.md) — Zero-cost abstractions for asynchronous programming.
- [Developer Tools](https://awesome-repositories.com/f/awesome-lists/devtools/developer-tools.md) — Zero-cost abstractions for asynchronous programming.

### Business & Productivity Software

- [Async Pin Projections](https://awesome-repositories.com/f/business-productivity-software/note-management/pinning/async-pin-projections.md) — Applies pin projections and stack pinning via macros to safely work with self-referential data structures. ([source](https://rust-lang.github.io/futures-rs/blog/2018/08/15/futures-0.3.0-alpha.3.html))

### Data & Databases

- [Stream Processing](https://awesome-repositories.com/f/data-databases/data-processing-pipelines/stream-processing-systems/stream-processing.md) — Handles sequences of values over time with the Stream trait and its combinators. ([source](https://rust-lang.github.io/futures-rs/blog/2018/07/19/futures-0.3.0-alpha.1.html))
- [Async Sink Trait Implementations](https://awesome-repositories.com/f/data-databases/data-sinking/async-sink-trait-implementations.md) — Sends a sequence of values to a destination using the Sink trait and its adapters. ([source](https://rust-lang.github.io/futures-rs/blog/2018/07/19/futures-0.3.0-alpha.1.html))

### Development Tools & Productivity

- [Concurrent Task Execution](https://awesome-repositories.com/f/development-tools-productivity/concurrent-task-execution.md) — Spawning and driving multiple futures on executors, including thread pools and thread-local executors.
- [Async Stream Assertions](https://awesome-repositories.com/f/development-tools-productivity/terminal-output-monitors/output-validation/stream-buffer-assertions/async-stream-assertions.md) — Polls a stream step by step and verifies its output matches expected values, ensuring correct stream implementation. ([source](https://rust-lang.github.io/futures-rs/blog/2018/09/02/futures-0.3.0-alpha.4.html))

### DevOps & Infrastructure

- [Synchronous Context Spawning](https://awesome-repositories.com/f/devops-infrastructure/workflow-run-management/asynchronous-run-launches/background-task-execution/asynchronous-task-spawning/synchronous-context-spawning.md) — Spawns a future on an executor from synchronous code or poll functions using trait methods. ([source](https://rust-lang.github.io/futures-rs/blog/2018/08/15/futures-0.3.0-alpha.3.html))

### Networking & Communication

- [Future Polling Strategies](https://awesome-repositories.com/f/networking-communication/asynchronous-future-apis/future-polling-strategies.md) — Drives futures by repeatedly polling them, registering interest in events, and waking tasks when readiness changes.
- [Try Operator Integrations](https://awesome-repositories.com/f/networking-communication/asynchronous-future-apis/future-polling-strategies/try-operator-integrations.md) — Applies the question mark operator directly to poll values, simplifying error handling in future and stream implementations. ([source](https://rust-lang.github.io/futures-rs/blog/2018/07/30/futures-0.3.0-alpha.2.html))

### System Administration & Monitoring

- [Future Drivers](https://awesome-repositories.com/f/system-administration-monitoring/administrative-operations/linux-system-administration/networking/connection-lifecycle-management/parallel-network-i-o/event-driven-i-o/asynchronous-event-loops/future-drivers.md) — Drives a set of futures by polling them, waiting for I/O events, and waking tasks when their file descriptors become ready. ([source](https://rust-lang.github.io/futures-rs/blog/2018/08/17/toykio.html))

### Web Development

- [Async Stream Trait Definitions](https://awesome-repositories.com/f/web-development/asynchronous-api-clients/stream-composition/stream-combinators/async-stream-trait-definitions.md) — Defines the Stream trait and combinators for processing sequences of asynchronous values. ([source](https://cdn.jsdelivr.net/gh/rust-lang/futures-rs@master/README.md))
- [Async Task Contexts](https://awesome-repositories.com/f/web-development/context-type-definitions/test-context-types/async-task-contexts.md) — Provides a task::Context with configurable behavior for wake and spawn operations, enabling precise inspection of future polling. ([source](https://rust-lang.github.io/futures-rs/blog/2018/09/02/futures-0.3.0-alpha.4.html))

### Artificial Intelligence & ML

- [Async Pending Emulations](https://awesome-repositories.com/f/artificial-intelligence-ml/agentic-task-orchestrators/pending-task-cancellations/async-pending-emulations.md) — Wraps a future to return Poll::Pending on its first poll and immediately wake the task, simulating a realistic async operation. ([source](https://rust-lang.github.io/futures-rs/blog/2018/09/02/futures-0.3.0-alpha.4.html))

### Operating Systems & Systems Programming

- [No-Std Environment Adapters](https://awesome-repositories.com/f/operating-systems-systems-programming/platform-development-integration/platform-support/environment-support-managers/no-std-environment-adapters.md) — Operates in bare-metal environments by disabling default features and using only the core API surface. ([source](https://cdn.jsdelivr.net/gh/rust-lang/futures-rs@master/README.md))
