
Den 5 april 2024 presenterade Cloudflare den första offentliga versionen av det öppna projektet Pingora v0.1.0 (nu v0.1.1). Det är ett asynkront multitrådat ramverk skrivet i Rust som hjälper till att skapa HTTP-proxy-tjänster. Projektet används för att skapa tjänster som står för en stor del av trafiken hos Cloudflare (istället för att använda Nginx). Källkoden för Pingora har publicerats på GitHub under Apache 2.0-licensen.
Pingora erbjuder bibliotek och API:er för att bygga tjänster ovanpå HTTP/1 och HTTP/2, TLS eller bara TCP/UDP. Som proxyservern stödjer den genomgående proxying av HTTP/1 och HTTP/2, gRPC och WebSocket. Stöd för HTTP/3 är planerat. Pingora inkluderar också anpassningsbara strategier för lastbalansering och övergripande omkoppling. För att uppfylla krav och säkerhet stöder den både de vanligt förekommande biblioteken OpenSSL och BoringSSL, som uppfyller FIPS (föderala informationstekniska standarderna i USA) och post-kvantkryptering.
Förutom dessa funktioner erbjuder Pingora filter och callback-funktioner som låter användare helt anpassa hur tjänsten ska hantera, transformera och vidarebefordra förfrågningar.
I driftläge ger Pingora smidig omstart utan driftstopp för självuppdatering, utan att missa några inkommande förfrågningar. Syslog, Prometheus, Sentry, OpenTelemetry och andra nödvändiga övervakningsverktyg integreras enkelt med Pingora.
Möjligheter med Pingora: användning av Async Rust, stöd för HTTP 1/2 end-to-end proxy, TLS över OpenSSL eller BoringSSL, gRPC och proxying av websocket, Graceful reload, anpassningsbara strategier för lastbalansering och övergripande omkoppling, stöd för olika övervakningsverktyg.
I version Pingora v0.1.1 har tidigare upptäckta buggar åtgärdats, prestandan för algoritmen pingora-ketama har förbättrats, fler benchmark-tester av TinyUFO har lagts till och tester för pingora-cache purge, loggfelstorleken för InvalidHTTPHeader har begränsats, och även stavfel och nödvändiga justeringar har gjorts i kommentarerna och dokumentationen för projektet.
Källa: linux.org.ru
