Kino: Ruby 4.0 için Ractor tabanlı yüksek performanslı web sunucusu
Kino, Ruby 4.0 için Rust tabanlı Ractor web sunucusu: Puma cluster'a göre 1.5-2x hız ve 4-7x daha az bellek kullanımı sunuyor.
Kino, Ruby 4.0+ için geliştirilmiş, Ractor'ları kullanan yeni bir web sunucusu. Ruby thread'leri GVL nedeniyle paralel çalışamadığından, klasik yaklaşım her çekirdek için ayrı bir process fork etmek ve bellek maliyetini katlamaktı. Kino bunun yerine tek bir küçük process içinde, Rust (tokio + hyper) tabanlı bir ağ katmanı üzerinden Rack 3 uygulamanızı paralel Ractor'larda çalıştırıyor; Rails gibi Ractor-uyumlu olmayan uygulamalar için ise thread tabanlı bir fallback modu sunuyor.
Gerçek 8 çekirdekli bir sunucuda yapılan ölçümlere göre Kino'nun her modu, I/O-hafif endpoint'lerde Puma fork cluster'ına göre 1.5-2 kat daha hızlı; Ractor modu saf CPU işlerinde ise %30'dan fazla önde. Bellek tarafında fark daha da çarpıcı: basit bir sentetik uygulamada Puma cluster'a göre yaklaşık 7 kat, gerçek bir Rails uygulamasında threaded fallback modda ise yaklaşık 4 kat daha az bellek kullanımı ölçülmüş.
Kino; graceful drain, çökme durumunda supervision ve yeniden başlatma, backpressure için sınırlı kuyruklar, request timeout'ları, slowloris ve TLS handshake koruması gibi production özelliklerini hazır sunuyor. kino --check komutu, uygulamanızın Ractor moduna geçmesini engelleyen noktaları tek tek listeliyor. Puma'ya benzer worker×thread topolojisi ve config DSL'i sayesinde geçiş kolay; ancak Ractor'lar Ruby 4.0'da hâlâ deneysel olduğu için Kino da bu statüde, threaded modu ise stabil kabul ediliyor.
Bu sentez, kaynağından yapay zeka tarafından üretildi; insan editör ya da elle onay adımı yoktur. Nasıl çalışıyoruz