Expand description
A fast, low-level IO library for Rust focusing on non-blocking APIs, event notification, and other useful utilities for building high performance IO apps.
§Features
- Non-blocking TCP, UDP
- I/O event notification queue backed by epoll, kqueue, and IOCP
- Zero allocations at runtime
- Platform specific extensions
§Non-goals
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
- Timers
§Platforms
Currently supported platforms:
- Linux
- OS X
- Windows
- FreeBSD
- NetBSD
- Android
- iOS
mio can handle interfacing with each of the event notification systems of the aforementioned platforms. The details of
their implementation are further discussed in Poll
.
§Usage
Using mio starts by creating a Poll
, which reads events from the OS and
put them into Events
. You can handle IO events from the OS with it.
For more detail, see Poll
.
Re-exports§
pub use event::Events;
Modules§
- Thread safe communication channel implementing
Evented
- Readiness event types and utilities.
- Timer optimized for I/O related operations
- Unix only extensions
Structs§
- Polls for readiness events on all registered values.
- Options supplied when registering an
Evented
handle withPoll
- A set of readiness event kinds
- Handle to a user space
Poll
registration. - Updates the readiness state of the associated
Registration
.