2018-02-07 13:28:29 -08:00
|
|
|
# Tokio
|
2016-08-05 16:21:56 -07:00
|
|
|
|
2018-02-28 15:03:45 -08:00
|
|
|
A runtime for writing reliable, asynchronous, and slim applications with
|
|
|
|
|
the Rust programming langauge. It is:
|
|
|
|
|
|
|
|
|
|
* **Fast**: Tokio's zero-cost abstractions give you bare-metal
|
|
|
|
|
performance.
|
|
|
|
|
|
|
|
|
|
* **Reliable**: Tokio leverages Rust's ownership, type system, and
|
|
|
|
|
concurrency model to reduce bugs and ensure thread safety.
|
|
|
|
|
|
|
|
|
|
* **Scalable**: Tokio has a minimal footprint, and handles backpressure
|
|
|
|
|
and cancellation naturally.
|
2016-08-05 16:21:56 -07:00
|
|
|
|
2018-02-27 20:35:50 +03:00
|
|
|
[![Travis Build Status][travis-badge]][travis-url]
|
|
|
|
|
[![Appveyor Build Status][appveyor-badge]][appveyor-url]
|
|
|
|
|
|
|
|
|
|
[travis-badge]: https://travis-ci.org/tokio-rs/tokio.svg?branch=master
|
|
|
|
|
[travis-url]: https://travis-ci.org/tokio-rs/tokio
|
2018-02-28 13:48:08 -08:00
|
|
|
[appveyor-badge]: https://ci.appveyor.com/api/projects/status/s83yxhy9qeb58va7?svg=true
|
2018-02-27 20:35:50 +03:00
|
|
|
[appveyor-url]: https://ci.appveyor.com/project/carllerche/tokio/branch/master
|
2016-08-05 16:21:56 -07:00
|
|
|
|
2018-02-07 13:28:29 -08:00
|
|
|
[Website](https://tokio.rs) |
|
|
|
|
|
[Guides](https://tokio.rs/docs/getting-started/hello-world/) |
|
|
|
|
|
[API Docs](https://docs.rs/tokio)
|
|
|
|
|
|
|
|
|
|
## Overview
|
|
|
|
|
|
2018-02-28 15:03:45 -08:00
|
|
|
Tokio is an event-driven, non-blocking I/O platform for writing
|
|
|
|
|
asynchronous applications with the Rust programming language. At a high
|
|
|
|
|
level, it provides a few major components:
|
|
|
|
|
|
|
|
|
|
* A multi threaded, work-stealing based task [scheduler].
|
|
|
|
|
* A [reactor] backed by the operating system's event queue (epoll, kqueue,
|
|
|
|
|
IOCP, etc...).
|
|
|
|
|
* Asynchronous [TCP and UDP][net] sockets.
|
2017-01-11 09:14:50 -08:00
|
|
|
|
2018-02-28 15:03:45 -08:00
|
|
|
These components provide the runtime components necessary for building
|
|
|
|
|
an asynchronous application.
|
2016-08-05 16:21:56 -07:00
|
|
|
|
2018-02-28 15:03:45 -08:00
|
|
|
[net]: https://docs.rs/tokio/0.1/tokio/net/index.html
|
|
|
|
|
[reactor]: https://docs.rs/tokio/0.1.1/tokio/reactor/index.html
|
|
|
|
|
[scheduler]: https://tokio-rs.github.io/tokio/tokio/runtime/index.html
|
2016-08-08 23:18:49 -07:00
|
|
|
|
|
|
|
|
# License
|
|
|
|
|
|
2017-10-30 14:16:46 -07:00
|
|
|
This project is licensed under either of
|
2016-08-08 23:18:49 -07:00
|
|
|
|
2017-10-30 14:16:46 -07:00
|
|
|
* Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or
|
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0)
|
|
|
|
|
* MIT license ([LICENSE-MIT](LICENSE-MIT) or
|
|
|
|
|
http://opensource.org/licenses/MIT)
|
|
|
|
|
|
|
|
|
|
at your option.
|
|
|
|
|
|
|
|
|
|
### Contribution
|
|
|
|
|
|
|
|
|
|
Unless you explicitly state otherwise, any contribution intentionally submitted
|
2017-11-02 16:01:42 -04:00
|
|
|
for inclusion in tokio by you, as defined in the Apache-2.0 license, shall be
|
2017-10-30 14:16:46 -07:00
|
|
|
dual licensed as above, without any additional terms or conditions.
|