Kino は Ruby 4.0+ 用の高性能 Ractor Web サーバーです。Ruby スレッドはコードを並列に実行できないため、プロダクション環境では各コアごとにプロセスをフォークし、メモリ内の各コピーに対して料金を支払います。Kino は小さなプロセスで各コア上でコードを実行します。Rust(tokio + hyper)フロントエンドがネットワークを管理し、並列 Ractor ワーカーが Rack 3 アプリを実行し、スレッドベースのフォールバックモードが Rails を含むすべてを実行します。高速です。実際の 8 コア サーバーでは、すべての Kino モードが I/O 軽量エンドポイントで Puma フォーククラスターより 1.5‑2× 先に進みます。Ractor モードは純粋な CPU で 30 %+ でも勝ちます。ベンチマークは以下です。メモリは一部だけです。単純なベンチ Ractor アプリでは約 7×、フォールバックスレッドモードで Rails を提供する Puma クラスターより約 4× 少ないメモリです。フォークなしで並列です。
Ractor モードは同じ小さなプロセスで CPU 作業を Kino の GVL‑bound スレッドモードより 5× 以上速く実行します。プロダクションのパイプラインは次のように含まれます:グレースフルドレイン、クラッシュ監視と再起動、503 バックプレッシャー付きのバウンドキュー、リクエストタイムアウト、ハードンされた入力(slowloris と TLS‑handshake デッドライン、接続とボディサイズの上限)、エラートラッカー用の on_error フック、TLS(rustls)、ライブ統計、非同期アクセスとアプリログ。理由を教えてくれます。
Kino の CLI と設定 DSL は Puma に似ています。Puma を実行できれば、Kino も実行できます。
出典: Hacker News · 要約:HeadlinesBriefing