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§
- channel
- Thread safe communication channel implementing
Evented - event
- Readiness event types and utilities.
- stream
- timer
- Timer optimized for I/O related operations
- unix
- Unix only extensions
Structs§
- Poll
- Polls for readiness events on all registered values.
- PollOpt
- Options supplied when registering an
Eventedhandle withPoll - Ready
- A set of readiness event kinds
- Registration
- Handle to a user space
Pollregistration. - SetReadiness
- Updates the readiness state of the associated
Registration. - Token