Using Tokio

Tokio is based on the lower-level crate mio, which is itself directly based on system calls such asĀ epoll (Linux), kqueue (FreeBSD), and IOCP (Windows). This crate is also based on the futures crate, which provides abstractions to reason about a value (or multiple values) that will be available later. As I told you when using asynchronous I/O, the calls do not block so we need a way to know when the result of a read is available. This is where Future and Stream, two abstractions from the futures crate, come into play.