This patch adds experimental async/await support to Tokio. It does this by adding feature flags to existing libs only where necessary in order to add nightly specific code (mostly `Unpin` implementations). It then provides a new crate: `tokio-async-await` which is a shim layer on top of `tokio`. The `tokio-async-await` crate is expected to look exactly like `tokio` does, but with async / await support. This strategy reduces the amount of cfg guarding in the main libraries. This patch also adds `tokio-channel`, which is copied from futures-rs 0.1 and adds the necessary `Unpin` implementations. In general, futures 0.1 is mostly unmaintained, so it will make sense for Tokio to take over maintainership of key components regardless of async / await support.
tokio-reactor
Event loop that drives Tokio I/O resources.
Overview
The reactor is the engine that drives asynchronous I/O resources (like TCP and
UDP sockets). It is backed by mio and acts as a bridge between mio and
futures.
The crate provides:
-
Reactoris the main type of this crate. It performs the event loop logic. -
Handleprovides a reference to a reactor instance. -
RegistrationandPollEventedallow third parties to implement I/O resources that are driven by the reactor.
Application authors will not use this crate directly. Instead, they will use the
tokio crate. Library authors should only depend on tokio-reactor if they
are building a custom I/O resource.
License
This project is licensed under the MIT license.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in Tokio by you, shall be licensed as MIT, without any additional terms or conditions.