Cloudflare har offentliggjort den første udgave af Pingora-rammeværket, der er designet til at udvikle sikre, højtydende netværkstjenester på Rust-sproget. Proxyen bygget med Pingora har været i brug i netværket til levering af indhold fra Cloudflare i næsten et år og håndterer mere end 40 millioner forespørgsler i sekundet. Koden er skrevet i Rust og offentliggjort under Apache 2.0-licensen.
Hovedfunktioner:
- Understøttelse af HTTP/1 og HTTP/2 (med planer om HTTP/3), samt muligheden for at oprette tjenester, der bruger deres egne protokoller eller UDP/TCP.
- Mulighed for multitrådet anmodningsbehandling i asynkron tilstand.
- Understøttelse af tilkaldte callback-håndterere og filtre, som gør det muligt at styre forskellige faser af behandling af forespørgslen samt ændre, omdirigere, blockere og logge forespørgsler og svar.
- Proxyering af gRPC og WebSocket.
- Plug-in load-balancere.
- Mulighed for at ændre konfigurationen uden genstart.
- Understøttelse af opdatering af applikationskoden uden at afbryde forbindelser.
- Værktøjer til lastskift i tilfælde af fejl (failover).
- Integration med forskellige overvågnings- og logningssystemer (Syslog, Prometheus, Sentry, OpenTelemetry).
- Understøttelse af TLS-kryptering (bruger OpenSSL eller BoringSSL).
- Klare Rust-pakker til opbygning af HTTP-proxy, arbejde med netværksprotokoller, parsing af HTTP-overskrifter, trafikovervågning og -begrænsning, load balancing, arbejde med den distribuerede hashtabel Ketama, vedligeholdelse af cache i hukommelsen og asynkron behandling af tidsafbrud.
Kilde: opennet.ru
