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]
git = "https://github.com/carllerche/mio"
mio
is on Crates.io, but is not often updated.
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
Coming soon
- Signal handling
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. However, Windows support will be coming soon. The goal is to support all platforms that Rust supports.