通过异步编程,IO 密集的程序可以有效降低开销并提高运行效率。不同操作系统的异步架构各有不同,通常分为基于就绪的(ready-based)与基于完成的(completion-based)。Rust 的异步语言特性基本针对前者而设计,但是近些年操作系统的发展,例如 Linux 的 io-uring,倾向于后者的“完全异步”的设计。这一异步思想在 Rust 上遇到了不小的挑战,易用性、安全性与零开销似乎构成了不可能三角。
Compio 项目是一个探索性的、基于完成的 Rust 跨平台异步框架,在迭代的过程中踩了不少坑,也积累了不少经验。尽管项目尚不成熟,但是它已经在文件 IO 的性能上完全碾压老牌的异步运行时 tokio。我们希望集思广益,通过这类尝试探索高性能与安全性的结合,并期望能够为 Rust 后续在异步方向上的语言设计改进提供思路。
欢迎一起来玩!