




Cloudflare открыла исходный код асинхронной библиотеки QUIC и HTTP/3 на основе среды выполнения Rust Tokio
Cloudflare открыла исходный код tokio-quiche — асинхронной библиотеки QUIC и HTTP/3, построенной на основе среды выполнения Rust Tokio. Компания пошла на этот шаг, чтобы упростить использование QUIC и HTTP/3 для разработчиков на Rust.
Внедрение QUIC и HTTP/3 за пределами крупных платформ происходило медленно, отчасти из-за сложности стека протоколов. Первоначальная реализация quiche в Cloudflare использовала подход «sans-io», то есть управляла конечным автоматом протокола, но всю интеграцию сетевого ввода-вывода оставляла разработчикам. Такая гибкость была хороша в теории, но на практике оказалась серьёзной проблемой. Многие разработчики либо отказались от этой идеи, либо полагались на фреймворки, скрывающие QUIC за слоями абстракций.
tokio-quiche — это попытка Cloudflare снизить барьер. Вместо того, чтобы заставлять разработчиков вручную управлять UDP-сокетами, асинхронными задачами и циклами протоколов, библиотека берёт на себя всю эту инфраструктуру, интегрируясь напрямую с Tokio. В основе лежит архитектура, основанная на акторах. Каждое соединение управляется собственной асинхронной задачей, которая поддерживает состояние протокола в процессе обмена данными по каналам. В результате получается более чистая и понятная реализация для тех, кто уже знаком с асинхронной разработкой на Rust.
Однако это не подразумевает использование HTTP-сервера или клиента «plug-and-play». tokio-quiche предоставляет только базовые строительные блоки. Разработчикам по-прежнему необходимо решить, как должны маршрутизироваться запросы, как должны генерироваться ответы и нужно ли создавать HTTP/3-сервис, инструмент DNS-over-QUIC, туннель MASQUE или что-то совершенно иное. Cloudflare заявляет, что её собственные высокоуровневые инструменты, такие
Читать на habr.com