
5 kwietnia 2024 roku Cloudflare zaprezentowało pierwszy publiczny release otwartego projektu Pingora v0.1.0 (już v0.1.1). To asynchroniczny framework wielowątkowy w Rust, który pomaga w tworzeniu usług proxy HTTP. Projekt jest używany do budowy usług, które obsługują znaczną część ruchu w Cloudflare (zamiast stosowania Nginx). Kod źródłowy Pingora jest dostępny na GitHubie na licencji Apache 2.0.
Pingora oferuje biblioteki i interfejsy API do tworzenia usług na HTTP/1 i HTTP/2, TLS lub po prostu TCP/UDP. Jako proxyserwera obsługuje pełne proxy HTTP/1 i HTTP/2, gRPC oraz WebSocket. Wsparcie dla HTTP/3 jest planowane. Pingora zawiera również konfigurowalne strategie load balancingu i failoveru. Aby spełnić wymagania bezpieczeństwa, obsługuje zarówno powszechnie używane biblioteki OpenSSL, jak i BoringSSL, które są zgodne z wymaganiami FIPS (federalnych standardów przetwarzania informacji w USA) oraz postquantum encryption.
Oprócz tych funkcji Pingora dostarcza filtry i callbacki, które umożliwiają użytkownikom pełną konfigurację tego, jak usługa powinna obsługiwać, przekształcać i przekazywać żądania.
W trybie produkcyjnym Pingora zapewnia płynne ponowne uruchamianie bez przestojów dla samodzielnej aktualizacji, nie tracąc ani jednego przychodzącego żądania. Syslog, Prometheus, Sentry, OpenTelemetry i inne niezbędne narzędzia monitorowania są łatwo integrowane z Pingora.
Funkcje Pingora: wykorzystanie Async Rust, wsparcie dla pełnego proxy HTTP 1/2, TLS przez OpenSSL lub BoringSSL, gRPC i proxy dla WebSocketów, płynne ponowne ładowanie, konfigurowalne strategie load balancingu i failoveru, wsparcie dla różnych narzędzi monitorujących.
W wersji Pingora v0.1.1 naprawiono wcześniej wykryte błędy, poprawiono wydajność algorytmu pingora-ketama, dodano więcej benchmarków TinyUFO oraz testów dla pingora-cache purge, ograniczono rozmiar bufora dla dzienników błędów InvalidHTTPHeader, a także poprawiono błędy typograficzne i wprowadzono niezbędne poprawki w komentarzach i dokumentacji projektu.
Źródło: linux.org.ru
