// 概要
Monoio は io_uring、epoll、kqueue を活用して効率的な I/O 操作を実現する thread-per-core な Rust 非同期ランタイムです。Work-stealing を回避することでタスクに Send や Sync の実装を要求せず、thread-local storage を安全かつ効率的に利用できます。このアーキテクチャは、スループットの最大化を主目的とする I/O バウンドなサーバーアプリケーションに最適化されています。
// 技術解説
Monoio は、 I/O バウンドなサーバーアプリケーション向けに設計された、高性能な thread-per-core 型の Rust async runtime です。 thread-per-core モデルを採用することで、タスクが Send や Sync である必要性を排除し、 thread-local storage の安全な利用を可能にするとともに、 work-stealing 型の runtime に伴うオーバーヘッドを回避します。 io_uring 、 epoll 、 kqueue といったネイティブな非同期 I/O API を活用してスループットを最大化しますが、この設計上の選択は汎用的な互換性よりもパフォーマンスを優先しています。
// 主要ハイライト
// ユースケース
// クイックスタート
まず、 Rust 1.75 以降を使用していること、および Linux カーネルが io_uring (バージョン 5.6 以降) をサポートし、適切な memlock 設定が行われていることを確認してください。その後、プロジェクトに Monoio を追加し、 #[monoio::main] マクロを使用してエントリーポイントを定義します。提供されている TcpListener やストリームの抽象化を利用して、非同期ネットワークサービスを構築可能です。