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

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

#

Выпуск Pingora 0.4, фреймворка для создания сетевых сервисов
Дата публикации:Sat, 02 Nov 2024 22:06:46 +0300




Компания Cloudflare опубликовала выпуск фреймворка Pingora 0.4, предназначенного для разработки защищённых высокопроизводительных сетевых сервисов на языке 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, поддержания кэша в оперативной памяти и асинхронной обработки таймаутов.


Среди изменений в новой версии:
  • Начальная поддержка криптографической библиотеки Rustls, использующей криптопровайдеров на базе библиотек aws-lc-rs и ring, основанных на BoringSSL.

    Экспериментальная поддержка платформы Windows.

    Режим фиктивного TLS (dummy TLS), который можно применять в ситуациях, когда невозможно использовать реальную реализацию TLS.
    Добавлена поддержка модуля gRPC-web для трансляции запросов клиентов gRPC-web в запросы к серверу gRPC.
    Предоставлена возможность обработки соединений H2C (HTTP/2 поверх голого TCP, без шифрования) и HTTP/1 на одном сетевом порту.

    Добавлена возможность подключения собственных реализаций функции connect() для изменения поведения при установке сетевого соединения, например, для выставления дополнительных опций для сокета или симуляции ошибок при тестировании.

    Предоставлена возможность игнорирования информационных ответов при проксировании, таких как ответы с заголовком "Expect: 100-continue".

    Добавлена поддержка распаковки ответов, сжатых методом gzip.
    Реализован учёт состояния бэкенда в целях мониторинга.



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


Новость позаимствована с opennet.ru
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=62163

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

Ответить