Выпуск Pingora 0.6, фреймворка для создания сетевых сервисов

Новости мира unix. Хотите узнать секрет вечного счастья? Откройте страницу 246.
Ответить
acolyte
Аватара пользователя
Сообщения: 261
Зарегистрирован: 20.08.2022

#

Выпуск Pingora 0.6, фреймворка для создания сетевых сервисов
Дата публикации:Mon, 18 Aug 2025 09:14:53 +0300

Компания Cloudflare опубликовала выпуск фреймворка Pingora 0.6, предназначенного для разработки защищённых высокопроизводительных сетевых сервисов на языке Rust. Построенный при помощи Pingora прокси уже более двух лет используется в сети доставки контента Cloudflare вместо nginx и обрабатывает более 40 млн запросов в секунду. Код написан на языке Rust и опубликован под лицензией Apache 2.0.
Основные возможности Pingora:
  • Поддержка HTTP/1 и HTTP/2 (в планах HTTP/3), а также возможность создания сервисов, использующих свои протоколы или UDP/TCP. Поддержка многопоточной обработки запросов в асинхронном режиме. Возможность прикрепления callback-обработчиков и фильтров, позволяющих управлять различными стадиями обработки запроса, а также изменять, перенаправлять, блокировать и журналировать запросы и ответы. Проксирование gRPC и WebSocket. Подключаемые балансировщики нагрузки. Возможность изменения конфигурации без перезапуска. Поддержка обновления кода приложения без разрыва соединений. Средства для переключения нагрузки в случае сбоя (failover). Интеграция с различными системами мониторинга и ведения логов (Syslog, Prometheus, Sentry, OpenTelemetry). Поддержка TLS-шифрования (применяется OpenSSL, BoringSSL или Rustls). Готовые Rust-пакеты для создания HTTP-прокси, работы с сетевыми протоколами, разбора заголовков HTTP, учёта и ограничения трафика, балансировки нагрузки, работы с распределённой хэш-таблицей Ketama, поддержания кэша в оперативной памяти и асинхронной обработки таймаутов.
Среди изменений в новой версии:
  • Во время завершения работы обеспечено сохранение в логе имён runtime-компонентов для упрощения диагностики проблем, вызванных отсутствием runtime-компонентов и приводящих к задержкам во время завершения работы. Включено отслеживание фаз исполнения сервера, информация о которых может быть полезна для мониторинга или обеспечения отказоустойчивости. При смене фазы исполнения генерируется сообщение ExecutionPhase, которое можно перехватить через API Server::watch_execution_phase. Разрешено размещение в памяти сжатых словарей. В реализации http-сервера и http-прокси добавлены директивы HttpServerOptions и H2Options. Реализована защита от атаки MadeYouReset, позволяющей вызвать отказ в обслуживании через манипуляцию управляющими кадрами HTTP/2.
Новость позаимствована с opennet.ru
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=63738

Жизнь за Нер'зула!

Ответить