Techniques for writing concurrent applications with asynchronous I/O
summary
Asynchronous I/O yields higher throughput, lower latency and far less memory for web servers — benchmarks show Apache’s threaded model is much slower and heavier — by using mio for low‑level readiness, tokio + futures for an event loop and composable async code, plus a thread pool for blocking work. An ident protocol server is implemented end‑to‑end and works, but BufReader blocks (WouldBlock) so practical fixes are intermediate buffers, byte→stream parsing or tokio‑service transport/serialize pipelines.
AI-written summary · about
chapters (24)
- 0:00Intro
- 0:30Who uses asynchronous IO
- 1:30Synchronous IO
- 2:40Rust
- 3:10Asynchronous IO
- 3:45Advantages of asynchronous IO
- 7:10asynchronous IO in Rest
- 7:50Metal IO
- 9:00Echo Server
- 9:55Why Tokyo
- 13:00Portal
- 13:55Stream
- 14:25Futures
- 15:55Future CPU Pool
- 16:30About Tokyo
- 18:30Event loop implementation
- 19:40Connection handling
- 20:20Use case identification protocol
- 21:20Invalid port
- 22:00First solution
- 23:10Problems
- 24:40Tokyo Service
- 26:15SimpleService
- 27:50Conclusion
related talks
30mWriting High Performance Async IO Apps
33mStorage-intensive apps on tokio: when it's time to reach for io_uring
54mAsynchronous IO Using Boost.Asio
29mI/O in Rust: the whole story
18mA better way of doing Async Rust
06mZero-copy Transfers with io_uring and Rust
29mAsychronous programming in Rust
16mTokio’s New io_uring-Based File I/O
