mirror of
https://github.com/tokio-rs/tokio.git
synced 2025-09-25 12:00:35 +00:00
Update readme (#196)
This commit is contained in:
parent
25dd54d263
commit
264fef60e3
14
README.md
14
README.md
@ -12,18 +12,28 @@ the Rust programming language. It is:
|
||||
* **Scalable**: Tokio has a minimal footprint, and handles backpressure
|
||||
and cancellation naturally.
|
||||
|
||||
[![Crates.io][crates-badge]][crates-url]
|
||||
[![MIT licensed][mit-badge]][mit-url]
|
||||
[![Travis Build Status][travis-badge]][travis-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-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
|
||||
|
||||
[Website](https://tokio.rs) |
|
||||
[Guides](https://tokio.rs/docs/getting-started/hello-world/) |
|
||||
[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
|
||||
|
||||
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
|
||||
|
||||
The `tokio` crate, found at the root, is primarily intended for use by
|
||||
|
@ -11,39 +11,41 @@ cargo run --example $name
|
||||
|
||||
A high level description of each example is:
|
||||
|
||||
* `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`.
|
||||
* [`hello_world`](hello_world.rs) - 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 accepts connections and
|
||||
then echos back any contents that are read from each connected client.
|
||||
* [`echo`](echo.rs) - 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-udp`](echo-udp.rs) - again your standard "echo server", except for UDP
|
||||
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
|
||||
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!
|
||||
* [`connect`](connect.rs) - 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`](chat.rs) - 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.
|
||||
* [`chat-combinator`](chat-combinator.rs) - 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.
|
||||
* [`proxy`](proxy.rs) - an example proxy server that will forward all connected
|
||||
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
|
||||
showcasing running on multiple cores, working with futures and spawning
|
||||
tasks, and finally framing a TCP connection to discrete request/response
|
||||
objects.
|
||||
* [`tinyhttp`](tinyhttp.rs) - 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.
|
||||
|
||||
* `tinydb` - an in-memory database which shows sharing state between all
|
||||
connected clients, notably the key/value store of this database.
|
||||
* [`tinydb`](tinyhttp.rs) - an in-memory database which shows sharing state
|
||||
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
|
||||
issue. Otherwise if you've got an example you'd like to add, please feel free
|
||||
|
Loading…
x
Reference in New Issue
Block a user