Cloudflare объявила о публикации в открытом доступе Pingora– ” data-html=”true” data-original-title=”фреймворк” >фреймворка на языке Rust, который уже используется в критически важных системах Cloudflare, обрабатывая более 40 млн. запросов в секунду. Pingora доступен под лицензией Apache версии 2.0 и представляет собой асинхронную многопоточную систему для создания ” data-html=”true” data-original-title=”HTTP” >HTTP-прокси-сервисов.
Pingora поддерживает не только прокси, но и клиенты, серверы, содержит утилиты для счета событий, обработки ошибок и кэширования. Фреймворк предлагает библиотеки и API для работы с HTTP/1 и HTTP/2, TLS и TCP/UDP, поддерживает gRPC и WebSocket, а также предоставляет настраиваемые стратегии балансировки нагрузки и отказоустойчивости.
В числе преимуществ Pingora – безопасность и высокая производительность, что делает его альтернативой для сервисов, написанных на C/C++. Фреймворк предлагает расширенные возможности настройки благодаря своему программно-управляемому API, позволяя создавать настраиваемые и продвинутые шлюзы и балансировщики нагрузки.
Примером использования Pingora может служить создание простого балансировщика нагрузки, выбирающего между двумя серверами в режиме round-robin. Фреймворк обеспечивает нулевое время простоя при перезапуске, поддерживая бесперебойную обработку входящих запросов и легко интегрируется с инструментами наблюдения, такими как Syslog, Prometheus и Sentry.
Cloudflare подчеркивает, что Pingora является библиотекой и набором инструментов, а не исполняемым файлом, что делает его гибким решением для индустрии. При этом поддержка не Unix-подобных ОС пока не входит в планы разработки.
Для вклада в проект можно отправлять отчеты об ошибках, вопросы документации или запросы на новые функции в трекере GitHub проекта, при этом рекомендуется ознакомиться с руководством для участников.
Cloudflare также выражает надежду, что Pingora принесет пользу как профессионалам веб-сервисов, так и исследователям сетевых технологий, подчеркивая важность движения к безопасному интернету и благодаря сообщество Rust за поддержку в создании Pingora.