Представлена новая версия инструмента для создания высокопроизводительных прокси-серверов.

Разработчики представили новую версию сетевого каркаса Pingora, инструмента для создания быстрых и надежных сетевых сервисов на языке Rust. Проект уже несколько лет работает под высокой нагрузкой и, по данным авторов, обрабатывает более 40 миллионов интернет-запросов в секунду. Теперь платформа получила крупное обновление с расширенными возможностями безопасности, фильтрации соединений и настройки прокси.
Pingora предназначен для создания прокси-серверов, балансировщиков нагрузки и других сетевых компонентов. Его продвигают как более безопасную альтернативу решениям на C и C++, так как Rust обеспечивает контроль памяти и снижает риск типовых уязвимостей. Каркас поддерживает работу с HTTP версий 1 и 2, проксирование gRPC и веб-сокетов, а также шифрование TLS через разные криптографические библиотеки. Есть механизмы мягкой перезагрузки, расширяемые стратегии балансировки и отказоустойчивости, а также инструменты наблюдаемости.
Версия 0.7.0 приносит расширяемый механизм SslDigest для сохранения пользовательского TLS-контекста и новый интерфейс ConnectionFilter для ранней фильтрации TCP-соединений. Появилась виртуальная абстракция транспортного потока уровня L4, добавлена проверка сертификата и имени узла при использовании библиотеки rustls, а также поддержка журнала ключей SSLKEYLOGFILE. Разработчики открыли структуру HttpProxy для внешних модулей, чтобы можно было глубже настраивать логику проксирования, и добавили режим взаимной аутентификации с использованием клиентских сертификатов.
В обновлении улучшена работа кэша и фоновых подзапросов, добавлено отслеживание объема тела ответа для HTTP 1 и HTTP 2, расширены параметры ограничений и управления весами ответов. Внесено множество исправлений ошибок, связанных с тайм-аутами, обработкой заголовков, фрагментов и буферов. Также обновлены зависимости, в том числе библиотека lru, чтобы закрыть зарегистрированную проблему безопасности.
Основной поддерживаемой средой для Pingora остается Linux. Системы семейства Unix, включая macOS, заявлены как совместимые с ограничениями. Поддержка Windows пока находится на ранней стадии и развивается силами сообщества. Минимальная поддерживаемая версия Rust на данный момент равна 1.84, при этом политика проекта допускает ее регулярное повышение.
Проект распространяется по лицензии Apache 2.0 и ориентирован на разработчиков, которым важны производительность, гибкая настройка и повышенная безопасность сетевых сервисов.