Abstractions for asynchronous programming.
This crate provides a number of core abstractions for writing asynchronous code:
- Streams represent a series of values produced asynchronously.
- Sinks provide support for asynchronous writing of data.
- Executors are responsible for running asynchronous tasks.
The crate also contains abstractions for asynchronous I/O and cross-task communication.
Underlying all of this is the task system, which is a form of lightweight threading. Large asynchronous computations are built up using futures, streams and sinks, and then spawned as independent tasks that are run to completion, but do not block the thread running them.
Futures-powered synchronization primitives.
This module contains the
A "prelude" for crates using the
Tools for working with tasks.
Polls multiple futures simultaneously, returning a tuple of all results once complete.
A macro which yields to the event loop once.
Pins a value on the stack.
A macro which returns the result of polling a future once within the
Extracts the successful type of a
Polls multiple futures and streams simultaneously, executing the branch
for the future that finishes first. If multiple futures are ready,
one will be pseudo-randomly selected at runtime. Futures passed to
Polls multiple futures simultaneously, resolving to a