MIO is a lightweight IO library for Rust with a focus on adding as little overhead as possible over the OS abstractions.
To use mio
, first add this to your Cargo.toml
:
[dependencies]
mio = "0.3.0"
Then, add this to your crate root:
extern crate mio;
- Event loop backed by epoll, kqueue.
- Zero allocations at runtime
- Non-blocking TCP, UDP and Unix domain sockets
- High performance timer system
- Thread safe message channel for cross thread communication
Eventually
- Signal handling
- Windows support
The following are specifically omitted from MIO and are left to the user or higher level libraries.
- File operations
- Thread pools / multi-threaded event loop
Currently, MIO only supports Linux and Darwin. The goal is to support all platforms that support Rust and the readiness IO model.
A group of mio users hang out in the #mio channel on the Mozilla IRC server (irc.mozilla.org). This can be a good place to go for questions.