awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
rust-lang avatar

rust-lang/futures-rs

0
View on GitHub↗
5,870 stars·690 forks·Rust·Apache-2.0·24 viewsrust-lang.github.io/futures-rs↗

Futures Rs

Zero-cost asynchronous programming in Rust

Features

  • Async Runtime Foundations - The core library providing Future, Stream, and Sink traits with combinators for zero-cost async programming in Rust.
  • Future, Stream, and Sink Abstractions - Defines the Future, Stream, and Sink traits as core abstractions for composing asynchronous workflows.
  • Async Programming - Writing asynchronous code using Rust's async/await syntax with the Future trait and executor integration.
  • Async Pin Projections - Applies pin projections and stack pinning via macros to safely work with self-referential data structures.
  • Stream Processing - Handles sequences of values over time with the Stream trait and its combinators.
  • Async Sink Trait Implementations - Sends a sequence of values to a destination using the Sink trait and its adapters.
  • Concurrent Task Execution - Spawning and driving multiple futures on executors, including thread pools and thread-local executors.
  • Synchronous Context Spawning - Spawns a future on an executor from synchronous code or poll functions using trait methods.
  • Future Polling Strategies - Drives futures by repeatedly polling them, registering interest in events, and waking tasks when readiness changes.
  • Async-Await Flow Control - Writes asynchronous code using the native async/await notation that integrates with the Future trait.
  • Async I/O Traits - Reading from and writing to I/O sources without blocking using core asynchronous I/O traits.
  • Stream Combinators - Handling sequences of asynchronous values over time using the Stream trait and its combinators.
  • Trait Definitions - Defines the Stream trait and combinators for composing and transforming sequences of asynchronous values.
  • Async Channel Endpoints - Exchanges data between concurrent tasks using channels whose endpoints implement Future, Stream, or Sink.
  • Ecosystem Interoperability - Interoperates between the 0.1 and 0.3 futures ecosystems to enable gradual migration and mixed usage of both versions.
  • Async Test Harness Utilities - Includes mock contexts, pinning macros, and assertion helpers for testing asynchronous code and stream behavior.
  • Future-Based Concurrency Frameworks - Joins multiple futures into a single output or selects the first one to complete among them.
  • Futures API Bridges - Bridge traits and converters that enable interoperability between the legacy futures 0.1 and modern 0.3 ecosystems.
  • Asynchronous Task Executors - Executes asynchronous tasks using a thread pool or a thread-local executor.
  • Async Context Spawning - Spawns a future to completion from inside async functions, closures, or blocks using a macro.
  • Async Task Spawning - Offers executor traits and macros for spawning and driving futures to completion in various runtime contexts.
  • Executor-Agnostic Spawning - Spawns futures on executors from both async and synchronous contexts through trait methods and macros.
  • Future Drivers - Drives a set of futures by polling them, waiting for I/O events, and waking tasks when their file descriptors become ready.
  • Async Stream Trait Definitions - Defines the Stream trait and combinators for processing sequences of asynchronous values.
  • Async Pending Emulations - Wraps a future to return Poll::Pending on its first poll and immediately wake the task, simulating a realistic async operation.
  • Async Stream Assertions - Polls a stream step by step and verifies its output matches expected values, ensuring correct stream implementation.
  • Try Operator Integrations - Applies the question mark operator directly to poll values, simplifying error handling in future and stream implementations.
  • No-Std Environment Adapters - Operates in bare-metal environments by disabling default features and using only the core API surface.
  • Futures Version Migration Layers - Provides conversion layers between futures 0.1 and 0.3 APIs, enabling gradual migration and mixed usage.
  • Async Test Executors - Spawns a dedicated executor on a background thread to drive a future to completion without blocking the test.
  • Async IO Trait Converters - Translates between futures 0.3 and tokio-io AsyncRead and AsyncWrite traits using dedicated combinators.
  • Executor Trait Bridges - Converts between the futures 0.1 Executor trait and the futures 0.3 Spawn trait to spawn tasks across different API versions.
  • Legacy Executor Runners - Converts a standard future into a futures 0.1 future so it can execute on executors built for the older version.
  • Legacy Future Adapters - Converts a futures 0.1 future into a standard future so it can be used inside async functions.
  • Async Task Contexts - Provides a task::Context with configurable behavior for wake and spawn operations, enabling precise inspection of future polling.
  • Asynchronous Programming - Zero-cost abstractions for asynchronous programming.
  • Developer Tools - Zero-cost abstractions for asynchronous programming.

Star history

Star history chart for rust-lang/futures-rsStar history chart for rust-lang/futures-rs

How this analysis was created: This summary and feature list were written by an AI model that read the project's README and public documentation pages. Each feature links to the documentation it came from; stars, license and language come straight from the GitHub API. The model does not read the source code, and the analysis is refreshed when the project is re-analysed. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Frequently asked questions

What does rust-lang/futures-rs do?

Zero-cost asynchronous programming in Rust

What are the main features of rust-lang/futures-rs?

The main features of rust-lang/futures-rs are: Async Runtime Foundations, Future, Stream, and Sink Abstractions, Async Programming, Async Pin Projections, Stream Processing, Async Sink Trait Implementations, Concurrent Task Execution, Synchronous Context Spawning.

What are some open-source alternatives to rust-lang/futures-rs?

Open-source alternatives to rust-lang/futures-rs include: async-rs/async-std — async-std is a Rust asynchronous runtime and non-blocking I/O library. It serves as an asynchronous standard library,… smol-rs/async-task — Async-task is a low-level Rust concurrency library and asynchronous task executor designed for building custom… twitter/scala_school — This project is a Scala programming course and educational resource. It provides a set of lessons covering the core… ruby-concurrency/concurrent-ruby — Concurrent Ruby is a comprehensive concurrency toolkit for the Ruby language that provides thread-safe data… scala/scala — Scala is a statically typed programming language and compiler that combines object-oriented and functional programming… winterbe/java8-tutorial — This project is a comprehensive programming tutorial and technical guide focused on the Java 8 language specification.…

Open-source alternatives to Futures Rs

Similar open-source projects, ranked by how many features they share with Futures Rs.
  • async-rs/async-stdasync-rs avatar

    async-rs/async-std

    4,068View on GitHub↗

    async-std is a Rust asynchronous runtime and non-blocking I/O library. It serves as an asynchronous standard library, providing a set of alternatives to the core Rust library for managing concurrent tasks, networking, and file system access. The project implements a standard-library-mirrored API, offering asynchronous versions of existing synchronous types to maintain a familiar interface. This approach allows for asynchronous Rust development using an interface that reflects the ergonomics of the language's standard library. The runtime includes a task executor for scheduling and executing

    Rustasyncasync-awaitasync-rust
    View on GitHub↗4,068
  • smol-rs/async-tasksmol-rs avatar

    smol-rs/async-task

    572View on GitHub↗

    Async-task is a low-level Rust concurrency library and asynchronous task executor designed for building custom asynchronous runtimes and managing background task execution pipelines. It provides concurrency primitives that handle atomic task state management, heap-allocated futures, output retrieval, and type-erased execution handles. The library coordinates task execution, cancellation, and polling states across multiple threads using lock-free atomic operations and reference counting. Developers can supply custom scheduling logic and metadata hooks that dictate when and how tasks are queue

    Rustasyncrust
    View on GitHub↗572
  • scala/scalascala avatar

    scala/scala

    14,548View on GitHub↗

    Scala is a statically typed programming language and compiler that combines object-oriented and functional programming paradigms. It serves as a cross-platform runtime language capable of targeting the Java Virtual Machine and JavaScript to share logic between backend servers and web frontends. The project provides a functional programming framework with immutable data structures and higher-order functions to build reliable concurrent and distributed applications. It distinguishes itself through deep interoperability with Java and JavaScript ecosystems and the ability to transform code into n

    Scalafunctional-programmingjvm-languagesobject-oriented-programming
    View on GitHub↗14,548
  • ruby-concurrency/concurrent-rubyruby-concurrency avatar

    ruby-concurrency/concurrent-ruby

    5,830View on GitHub↗

    Concurrent Ruby is a comprehensive concurrency toolkit for the Ruby language that provides thread-safe data structures, synchronization primitives, and asynchronous execution patterns. It implements core concurrency abstractions including an actor model framework where isolated actors communicate through asynchronous message passing, a future and promise system for composing non-blocking operations, and thread pool executors that manage reusable worker threads for concurrent task execution. The library distinguishes itself through a broad set of coordination mechanisms that go beyond basic th

    Ruby
    View on GitHub↗5,830
  • See all 30 alternatives to Futures Rs→