
Den 5. april 2024 offentliggjorde Cloudflare den første offentlige version af det åbne projekt Pingora v0.1.0 (allerede v0.1.1). Dette er et asynkront, multitrådede framework i Rust, som hjælper med at oprette HTTP-proxyservices. Projektet bruges til at udvikle services, der håndterer en betydelig del af trafikken i Cloudflare (i stedet for at bruge Nginx). Kildekoden til Pingora er offentliggjort på GitHub under Apache 2.0-licensen.
Pingora tilbyder biblioteker og API'er til at skabe services oven på HTTP/1 og HTTP/2, TLS eller blot TCP/UDP. Som en proxyserver understøtter det gennemgående proxy ved HTTP/1 og HTTP/2, gRPC og WebSocket. Understøttelse af HTTP/3 er på vej. Pingora inkluderer også tilpassede belastningsbalanceringsstrategier og fejlovergang. For at imødekomme kravene til sikkerhed understøtter den både velkendte biblioteker som OpenSSL og BoringSSL, som opfylder FIPS (federale informationsbehandlingsstandarder i USA) samt post-kvante-kryptering.
Ud over disse funktioner tilbyder Pingora filtre og callbacks, der giver brugerne mulighed for fuldt ud at tilpasse, hvordan servicen skal håndtere, transformere og videresende anmodninger.
I driftsmodus muliggør Pingora en glidende genstart uden nedetid for selvopdatering, uden at miste nogen indkommende anmodninger. Syslog, Prometheus, Sentry, OpenTelemetry og andre nødvendige overvågningsværktøjer integreres nemt med Pingora.
Pingoras funktioner: brug af Async Rust, understøttelse af HTTP 1/2 end-to-end proxy, TLS via OpenSSL eller BoringSSL, gRPC og proxy for websockets, glat genstart, tilpassede belastningsbalanceringsstrategier og fejlovergang, understøttelse af forskellige overvågningsværktøjer.
I version Pingora v0.1.1 er tidligere opdagede fejl rettet, ydeevnen af pingora-ketama-algoritmen er forbedret, der er tilføjet flere benchmarks TinyUFO og tests for pingora-cache purge, størrelsen på bufferen for InvalidHTTPHeader-errorlogs er begrænset, samt der er rettet typografiske fejl og foretaget nødvendige korrektioner i kommentarer og dokumentationen til projektet.
Kilde: linux.org.ru
