futures 0.2.0-alpha

An implementation of futures and streams featuring zero allocations, composability, and iterator-like interfaces.

Abstractions for asynchronous programming

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

  • Futures (sometimes called promises), which represent a single asychronous computation that may result in a final value or an error.

  • Streams, which represent a series of values or errors produced asynchronously.

  • Sinks, which support asynchronous writing of data.

  • Executors, which 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.