Update readme (#196)

This commit is contained in:
Carl Lerche
2018-03-07 22:28:01 -08:00
committed by GitHub
parent 25dd54d263
commit 264fef60e3
2 changed files with 40 additions and 26 deletions
+13 -1
View File
@@ -12,18 +12,28 @@ the Rust programming language. It is:
* **Scalable**: Tokio has a minimal footprint, and handles backpressure * **Scalable**: Tokio has a minimal footprint, and handles backpressure
and cancellation naturally. and cancellation naturally.
[![Crates.io][crates-badge]][crates-url]
[![MIT licensed][mit-badge]][mit-url]
[![Travis Build Status][travis-badge]][travis-url] [![Travis Build Status][travis-badge]][travis-url]
[![Appveyor Build Status][appveyor-badge]][appveyor-url] [![Appveyor Build Status][appveyor-badge]][appveyor-url]
[crates-badge]: https://img.shields.io/crates/v/tokio.svg
[crates-url]: https://crates.io/crates/tokio
[mit-badge]: https://img.shields.io/badge/license-MIT-blue.svg
[mit-url]: LICENSE-MIT
[travis-badge]: https://travis-ci.org/tokio-rs/tokio.svg?branch=master [travis-badge]: https://travis-ci.org/tokio-rs/tokio.svg?branch=master
[travis-url]: https://travis-ci.org/tokio-rs/tokio [travis-url]: https://travis-ci.org/tokio-rs/tokio
[appveyor-badge]: https://ci.appveyor.com/api/projects/status/s83yxhy9qeb58va7?svg=true [appveyor-badge]: https://ci.appveyor.com/api/projects/status/s83yxhy9qeb58va7/branch/master?svg=true
[appveyor-url]: https://ci.appveyor.com/project/carllerche/tokio/branch/master [appveyor-url]: https://ci.appveyor.com/project/carllerche/tokio/branch/master
[Website](https://tokio.rs) | [Website](https://tokio.rs) |
[Guides](https://tokio.rs/docs/getting-started/hello-world/) | [Guides](https://tokio.rs/docs/getting-started/hello-world/) |
[API Docs](https://docs.rs/tokio) [API Docs](https://docs.rs/tokio)
The API docs for the master branch are published [here][master-dox].
[master-dox]: https://tokio-rs.github.io/tokio/tokio/
## Overview ## Overview
Tokio is an event-driven, non-blocking I/O platform for writing Tokio is an event-driven, non-blocking I/O platform for writing
@@ -87,6 +97,8 @@ fn main() {
} }
``` ```
More examples can be found [here](examples).
## Project layout ## Project layout
The `tokio` crate, found at the root, is primarily intended for use by The `tokio` crate, found at the root, is primarily intended for use by
+27 -25
View File
@@ -11,39 +11,41 @@ cargo run --example $name
A high level description of each example is: A high level description of each example is:
* `hello_world` - a tiny server that writes "hello world" to all connected * [`hello_world`](hello_world.rs) - a tiny server that writes "hello world" to
clients and then terminates the connection, should help see how to create and all connected clients and then terminates the connection, should help see how
initialize `tokio`. to create and initialize `tokio`.
* `echo` - this is your standard TCP "echo server" which accepts connections and * [`echo`](echo.rs) - this is your standard TCP "echo server" which accepts
then echos back any contents that are read from each connected client. connections and then echos back any contents that are read from each connected
client.
* `echo-udp` - again your standard "echo server", except for UDP instead of TCP. * [`echo-udp`](echo-udp.rs) - again your standard "echo server", except for UDP
This will echo back any packets received to the original sender. instead of TCP. This will echo back any packets received to the original
sender.
* `connect` - this is a `nc`-like clone which can be used to interact with most * [`connect`](connect.rs) - this is a `nc`-like clone which can be used to
other examples. The program creates a TCP connection or UDP socket to sends interact with most other examples. The program creates a TCP connection or UDP
all information read on stdin to the remote peer, displaying any data received socket to sends all information read on stdin to the remote peer, displaying
on stdout. Often quite useful when interacting with the various other servers any data received on stdout. Often quite useful when interacting with the
here! various other servers here!
* `chat` - this spins up a local TCP server which will broadcast from any * [`chat`](chat.rs) - this spins up a local TCP server which will broadcast from
connected client to all other connected clients. You can connect to this in any connected client to all other connected clients. You can connect to this
multiple terminals and use it to chat between the terminals. in multiple terminals and use it to chat between the terminals.
* `chat-combinator` - Similar to `chat`, but this uses a much more functional * [`chat-combinator`](chat-combinator.rs) - Similar to `chat`, but this uses a
programming approch using combinators. much more functional programming approch using combinators.
* `proxy` - an example proxy server that will forward all connected TCP clients * [`proxy`](proxy.rs) - an example proxy server that will forward all connected
to the remote address specified when starting the program. TCP clients to the remote address specified when starting the program.
* `tinyhttp` - a tiny HTTP/1.1 server which doesn't support HTTP request bodies * [`tinyhttp`](tinyhttp.rs) - a tiny HTTP/1.1 server which doesn't support HTTP
showcasing running on multiple cores, working with futures and spawning request bodies showcasing running on multiple cores, working with futures and
tasks, and finally framing a TCP connection to discrete request/response spawning tasks, and finally framing a TCP connection to discrete
objects. request/response objects.
* `tinydb` - an in-memory database which shows sharing state between all * [`tinydb`](tinyhttp.rs) - an in-memory database which shows sharing state
connected clients, notably the key/value store of this database. between all connected clients, notably the key/value store of this database.
If you've got an example you'd like to see here, please feel free to open an If you've got an example you'd like to see here, please feel free to open an
issue. Otherwise if you've got an example you'd like to add, please feel free issue. Otherwise if you've got an example you'd like to add, please feel free