diff options
author | Carl Lerche <me@carllerche.com> | 2018-03-06 09:59:04 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-03-06 09:59:04 -0800 |
commit | f1cb12e14fb047f3f86c852c253962c60ce471e8 (patch) | |
tree | 59aab45a28961b00f7c71c5eb083c6242b51ff01 /examples/README.md | |
parent | 56c579787260abcb9786aa22cfca1ee4b7c3b5ba (diff) |
Update examples to track latest Tokio changes (#180)
The exampes included in the repository have lagged behind the changes
made. Specifically, they do not use the new runtime construct.
This patch updates examples to use the latest features of Tokio.
Diffstat (limited to 'examples/README.md')
-rw-r--r-- | examples/README.md | 34 |
1 files changed, 16 insertions, 18 deletions
diff --git a/examples/README.md b/examples/README.md index 3f4734c6..916c2cc0 100644 --- a/examples/README.md +++ b/examples/README.md @@ -1,9 +1,7 @@ -## Examples of `tokio-core` +## Examples of how to use Tokio This directory contains a number of examples showcasing various capabilities of -the `tokio` crate. Most of these examples also leverage the `futures` and -`tokio_io` crates, along with a number of other miscellaneous dependencies for -various tasks. +the `tokio` crate. All examples can be executed with: @@ -13,37 +11,37 @@ cargo run --example $name A high level description of each example is: -* `hello` - a tiny server that simply writes "Hello!" to all connected clients - and then terminates the connection, should help see how to create and +* `hello_world` - a tiny server that writes "hello world" to all connected + clients and then terminates the connection, should help see how to create and initialize `tokio`. -* `echo` - this is your standard TCP "echo server" which simply accepts - connections and then echos back any contents that are read from each connected - client. + +* `echo` - this is your standard TCP "echo server" which accepts 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. This will echo back any packets received to the original sender. -* `echo-threads` - servers the same purpose as the `echo` example, except this - shows off using multiple cores on a machine for doing I/O processing. + * `connect` - this is a `nc`-like clone which can be used to interact with most other examples. The program creates a TCP connection or UDP socket to sends all information read on stdin to the remote peer, displaying any data received on stdout. Often quite useful when interacting with the various other servers here! + * `chat` - this spins up a local TCP server which will broadcast from any connected client to all other connected clients. You can connect to this in multiple terminals and use it to chat between the terminals. + +* `chat-combinator` - Similar to `chat`, but this uses a much more functional + programming approch using combinators. + * `proxy` - an example proxy server that will forward all connected TCP clients to the remote address specified when starting the program. -* `sink` - a benchmark-like example which shows writing 0s infinitely to any - connected client. + * `tinyhttp` - a tiny HTTP/1.1 server which doesn't support HTTP request bodies showcasing running on multiple cores, working with futures and spawning tasks, and finally framing a TCP connection to discrete request/response objects. -* `udp-codec` - an example of using the `Encoder`/`Decoder` traits for UDP - along with a small ping-pong protocol happening locally. -* `compress` - an echo-like server where instead of echoing back everything read - it echos back a gzip-compressed version of everything read! All compression - occurs on a CPU pool to offload work from the event loop. + * `tinydb` - an in-memory database which shows sharing state between all connected clients, notably the key/value store of this database. |