Dan Burkert 46dd38b7d7 Clean up Sink implementation on Framed
This commit makes a few changes to the Sink implementation on Framed:

* Backpressure is implemented for `start_send`. If the write buffer is
  over 8KiB and can't be flushed, no new items are accepted.
* 0 length writes to the upstream transport are translated into a
  `WriteZero` error, as with `io::Write::write_all`. `write_all` checks
  for and ignores `Interrupted` errors, but I do not think this is
  necessary for non-blocking writes.
* In `poll_complete`, the upstream transport is not flushed until
  *after* writing the entire write buffer.
2016-11-16 18:42:30 -08:00
2016-11-08 19:09:26 -08:00
2016-08-26 14:45:55 -07:00
2016-08-26 14:56:21 -07:00
2016-08-26 14:56:21 -07:00
2016-09-09 18:15:15 -07:00

tokio-core

Core I/O and event loop abstraction for asynchronous I/O in Rust built on futures and mio.

Build Status Build status

Documentation

Usage

First, add this to your Cargo.toml:

[dependencies]
tokio-core = "0.1"

Next, add this to your crate:

extern crate tokio_core;

Examples

There are a few small examples showing off how to use this library:

  • echo.rs - a simple TCP echo server
  • socks5.rs - an implementation of a SOCKSv5 proxy server

What is tokio-core?

This crate is a connection futures, a zero-cost implementation of futures in Rust, and mio and a crate for zero-cost asynchronous I/O. The types and structures implemented in tokio-core implement Future and Stream traits as appropriate. For example connecting a TCP stream returns a Future resolving to a TCP stream, and a TCP listener implements a stream of TCP streams (accepted connections).

This crate also provides facilities such as:

  • TCP streams
  • TCP listeners
  • UDP sockets
  • Timeouts
  • Data owned and local to the event loop
  • An Executor implementation for a futures' Task

The intention of tokio-core is to provide a concrete implementation for crates built on top of asynchronous I/O. For example you can easily turn a TCP stream into a TLS/SSL stream with the tokio-tls crate or use the combinators to compose working with data on sockets.

Check out the documentation for more information, and more coming here soon!

License

tokio-core is primarily distributed under the terms of both the MIT license and the Apache License (Version 2.0), with portions covered by various BSD-like licenses.

See LICENSE-APACHE, and LICENSE-MIT for details.

S
Description
A runtime for writing reliable asynchronous applications with Rust. Provides I/O, networking, scheduling, timers, ...
Readme MIT
63 MiB
Languages
Rust 100%