Async I/O in Rust Tokio


(Benedikt Terhechte) #1

Hey,

I’m a huge fan of server-side Swift and I feel that there is a lot of potential for Swift to grow in this area. So I’m really looking forward to the outcome of this discussion.

I’m also a passive observer in the world of Rust, and one thing that recently really impressed was their async I/O library “Tokio”. It is a fairly low level implementation of async I/O and futures in order to be able to build all kinds of networking implementations on top of it:

"Tokio is an async I/O stack in Rust running the full gamut in terms of what it provides. At the very bottom you'll find the tokio-core crate with a bare-bones event loop and Future spawning. Near the top you'll find the tokio-proto crate with generic implementations of protocol details like pipelining and multiplexing used to serve requests to the Service trait intokio-service inspired by Finagle.”

https://github.com/tokio-rs/tokio

What I find particularly interesting here is the architecture of Tokio and the broad applications this low level library offers for high level frameworks. Also, the performance seems to be extraordinary good.

I wanted mainly to raise awareness for this implementation to see if there’s something interest we could learn from it. I remember that Rust did a lot of experimentation in the async I/O area until they implemented Tokio.

Cheers,
Benedikt