Writing High Performance Async IO Apps
summary
MIO is a lightweight non-blocking IO event loop for Rust that implements the readiness model (epoll/kqueue) rather than Windows-style completion, choosing edge-triggered behavior by default. The library uses lightweight tokens and a preallocated slab to map thousands of sockets with almost zero runtime allocation. Example output is a proxy/HTTP server that copies data with a single 4K buffer per proxy path, runs one event loop per component, and farms heavy work to a thread pool; Windows support is incomplete.
AI-written summary · about
chapters (12)
- 0:00Intro
- 0:15@CARLLERCHE
- 6:18COMPLETION
- 9:27WHICH TO PICK?
- 10:37ZERO COST ABSTRACTION
- 14:03EDGE TRIGGERED
- 14:56LEVEL TRIGGERED
- 18:28TOKENS
- 19:51WHY NOT CALLBACKS?
- 24:57MINIMIZE WORK ON EVENT LOOP THREAD
- 25:34COMPONENTS SHOULD ENCAPSULATE MIO
- 26:55WINDOWS?
related talks
29mI/O in Rust: the whole story
32mTechniques for writing concurrent applications with asynchronous I/O
33mStorage-intensive apps on tokio: when it's time to reach for io_uring
06mZero-copy Transfers with io_uring and Rust
54mAsynchronous IO Using Boost.Asio
28mRLoop: an AsyncIO event loop implemented in Rust
18mA better way of doing Async Rust
16mTokio’s New io_uring-Based File I/O
