HeadlinesBriefing HeadlinesBriefing.com

Kino: Ractor Web Server для Ruby 4.0+

Hacker News •
×

Kino — высокопроизводительный Ractor‑веб‑сервер для Ruby 4.0+. Потоки Ruby не могут выполнять код параллельно, поэтому в продакшене создаётся процесс на каждый ядро, и за каждую копию в памяти берётся плата. Kino запускает ваш код на каждом ядре в одном небольшом процессе. Фронтенд Rust (tokio + hyper) управляет сетью; параллельные рабочие Ractor запускают ваше приложение Rack 3, а режим с потоками выполняет всё остальное, включая Rails. Быстро. На реальном сервере с 8 ядрами каждый режим Kino опережает кластер fork‑Puma на I/O‑легких конечных точках на 1,5‑2×. Режим Ractor также выигрывает на чистом CPU, более чем на 30 %. Ниже тесты. Фрагмент памяти. Около 7× на простом тестовом приложении Ractor, и примерно 4× меньше памяти, чем кластер Puma, обслуживающий Rails в режиме потоков fallback. Параллельно без форка.

Режим Ractor выполняет работу CPU более чем в 5× быстрее, чем собственный GVL‑bound режим потоков Kino, в том же небольшом процессе. В продакшене включены: плавный сброс, надзор за сбоями и перезапуск, ограниченные очереди с backpressure 503, таймауты запросов, усиленный ввод (slowloris и таймауты TLS‑handshake, ограничения соединения и размера тела), хук on_error для вашего трекера ошибок, TLS (rustls), живые статистики, асинхронный доступ и логирование приложения. Он объясняет, почему.

CLI и DSL конфигурации Kino похожи на Puma; если вы можете запустить Puma, вы можете запустить Kino.

Источник: Hacker News · Сводку подготовил HeadlinesBriefing