Lëshimi i Pingora 0.7, një framework për krijimin e shërbimeve rrjet.

Компания Cloudflare опубликовала выпуск фреймворка Pingora 0.7, предназначенного для разработки защищённых высокопроизводительных сетевых сервисов на языке Rust. Построенный при помощи Pingora прокси уже более двух лет используется в сети доставки контента Cloudflare вместо nginx и обрабатывает более 40 млн запросов в секунду. Код написан на языке Rust и опубликован под лицензией Apache 2.0.

Karakteristikat kryesore të Pingora:

  • Mbështetje për HTTP/1 dhe HTTP/2 (në planet është HTTP/3), si dhe mundësia për të krijuar shërbime që përdorin protokolle të veta ose UDP/TCP.
  • Mbështetje për përpunim shumëthjeshtësor të kërkesave në mënyrë asinkrone.
  • Mundësia për të bashkangjitur menaxhuese callback dhe filtra, të cilët lejojnë menaxhimin e fazave të ndryshme të përpunimit të kërkesave, si dhe ndryshimin, ridrejtimin, bllokimin dhe regjistrimin e kërkesave dhe përgjigjeve.
  • Proksimi i gRPC dhe WebSocket.
  • Balancues ngarkese të qartë.
  • Mundësia për të ndryshuar konfigurimin pa rinisje.
  • Mbështetje për azhurnimin e kodit të aplikacionit pa ndërprerje të lidhjeve.
  • Mjetet për kalimin e ngarkesës në rast dështimi (failover).
  • Integrimi me sisteme të ndryshme të monitorimit dhe regjistrimit të të dhënave (Syslog, Prometheus, Sentry, OpenTelemetry).
  • Mbështetje për enkriptimin TLS (përdoren OpenSSL, BoringSSL ose Rustls).
  • Paketa të gatshme Rust për krijimin e proksi HTTP, punën me protokolle rrjeti, përpunimin e kokës HTTP, mbajtjen dhe kufizimin e trafikut, balancimin e ngarkesës, punën me tabelat e hesh dhe mbajtjen e caches në memorie të përkohshme dhe përpunimin asinkron të kohëve të prishura.

Ndër ndryshimet në versionin e ri:

  • В структуру SslDigest добавлено поле «extension», а для типажа TlsAccept реализован обработчик handshake_complete_callback, позволяющие прикреплять к TLS-соединению произвольные данные, специфичные для приложения. В качестве примера показано как использовать данную возможность для создания сервера, читающего информацию из сертификата клиента и возвращающего её в HTTP-ответе.
  • Добавлен типаж ConnectionFilter для фильтрации TCP-соединений на стадии до согласования параметров TLS, что позволяет экономить ресурсы, сбрасывая соединения на ранней стадии.
  • Добавлена поддержка виртуальных потоков транспортного уровня (Virtual L4 Streams), позволяющих интегрировать в pingora-proxy собственные реализации сетевых протоколов.
  • Реализована возможность использования опций verify_cert и verify_hostname в конфигурациях с rustls.
  • Для внешних crate-пакетов разрешён доступ к структуре HttpProxy для переопределения логики проксирования запросов.
  • Разрешено выделение фоновых обработчиков подзапросов из основного обработчика сеанса.
  • Предоставлена возможность отслеживания размера тела запросов HTTP1 и HTTP2, а также метрик работы прокси.
  • Добавлена возможность создания собственных сеансов для инкапсулированного HTTP-трафика.
  • Выставлено ограничения на использование версий библиотеки lru (0.16.3 или новее) из-за уязвимости в реализации итератора IterMut, приводящей к аварийному завершению из-за срабатывания проверки заимствования переменных (borrow checker).

Burimi: opennet.ru

Blini hostim të besueshëm për faqe interneti me mbrojtje DDoS, serverë VPS VDS 🔥 Blini hostim të besueshëm për faqe interneti me mbrojtje DDoS, serverë VPS VDS - ProHoster