Дата публикации:Sun, 12 May 2024 09:11:40 +0300
Компания Cloudflare опубликовала второй выпуск фреймворка Pingora, предназначенного для разработки защищённых высокопроизводительных сетевых сервисов на языке 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).
Готовые Rust-пакеты для создания HTTP-прокси, работы с сетевыми протоколами, разбора заголовков HTTP, учёта и ограничения трафика, балансировки нагрузки, работы с распределённой хэш-таблицей Ketama, поддержания кэша в оперативной памяти и асинхронной обработки таймаутов.
Среди изменений в новой версии:
- Добавлена поддержка установки фильтров для дополнительных заголовков HTTP/2.
Добавлена возможность изменения размера буфера входящих пакетов для TCP.
Добавлена функция body_bytes_read().
Добавлен фильтр cache_not_modified_filter.
Добавлена возможность ведения лога TLS-ключей.
Добавлена callback-функция purge_response.
Новость позаимствована с opennet.ru
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=61158