[][src]Crate futures

Abstractions for asynchronous programming.

This crate provides a number of core abstractions for writing asynchronous code:

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.

Modules

channel

Cross-task communication.

executor

Task execution.

future

Asynchronous values.

io

Asynchronous I/O.

prelude

A "prelude" for crates using the futures crate.

sink

Asynchronous sinks.

stream

Asynchronous streams.

task

Tools for working with tasks.

Macros

join

Polls multiple futures simultaneously, returning a tuple of all results once complete.

pending

A macro which yields to the event loop once.

poll

A macro which returns the result of polling a future once within the current async context.

ready

Extracts the successful type of a Poll<T>.

select

Polls multiple futures simultaneously, executing the branch for the future that finishes first.

spawn

Spawns a task onto the context's executor that polls the given future with output () to completion.

spawn_with_handle

Spawns a task onto the context's executor that polls the given future to completion and returns a future that resolves to the spawned future's output.

try_join

Polls multiple futures simultaneously, resolving to a Result containing either a tuple of the successful outputs or an error.

try_poll

Extracts Poll<T> from Poll<Result<T, E>>.

try_ready

Extracts the successful type of a Poll<Result<T, E>>.