Questions regarding mio


#1

I’m diving into Rust, coming from a Python background. I would like to build scalable network API handlers in Rust. In Python, I use ZMQ and Tornado. This allows me to asynchronously respond to messages. In Python, I’m not concerned by the fact that Tornado is single-threaded and thus can only make use of a single core.

In Rust, however, I would like to be able to have a similar asynchrous system that could expand across all available cores on a machine. I would like the rich type semantics that Rust offers, instead of having to serialize/deserialize across a ZMQ socket.

Can mio do this for me? Also, can I use mio to monitor ZMQ sockets in the same fashion that the pyzmq bindings use Tornado?


#2

AFAIK mio doesn’t provide multithreading on its own. mio is a lowlevel asynchronous IO API, and that’s pretty much all. There are projects to introduce M:N green threads and couple them with mio. But they’re unstable yet, or incomplete.