Företaget Cloudflare har publicerat den andra utgÄvan av ramverket Pingora, som Àr avsett för utveckling av sÀkra och högpresterande nÀtverkstjÀnster pÄ sprÄket Rust. Proxyn byggd med Pingora har anvÀnts i nÀtverket för Cloudflares innehÄllsleverans under ett Är istÀllet för nginx och hanterar mer Àn 40 miljoner förfrÄgningar per sekund. Koden Àr skriven pÄ sprÄket Rust och publicerad under Apache 2.0-licensen.
Huvudfunktioner i Pingora:
- Stöd för HTTP/1 och HTTP/2 (planerat HTTP/3), samt möjligheter att skapa tjÀnster som anvÀnder egna protokoll eller UDP/TCP.
- Möjlighet till flertrÄdad hantering av förfrÄgningar i asynkront lÀge.
- Stöd för att bifoga callback-hanterare och filter, vilket möjliggör hantering av olika stadier av förfrÄgningsbehandling samt att Àndra, omdirigera, blockera och logga förfrÄgningar och svar.
- Proxy för gRPC och WebSocket.
- Anpassningsbara lastbalanserare.
- Möjlighet att Àndra konfigurationen utan omstart.
- Stöd för att uppdatera applikationskoden utan att bryta anslutningar.
- Verktyg för lastvÀxling vid fel (failover).
- Integration med olika övervaknings- och logghanteringssystem (Syslog, Prometheus, Sentry, OpenTelemetry).
- Stöd för TLS-kryptering (anvÀnder OpenSSL eller BoringSSL).
- FÀrdiga Rust-paket för att skapa HTTP-proxy, arbeta med nÀtverksprotokoll, analysera HTTP-rubriker, övervaka och begrÀnsa trafik, balansera last, arbeta med den distribuerade hash-tabellen Ketama, upprÀtthÄlla cache i minnet samt asynkron hantering av tidsgrÀnser.
Bland förÀndringarna i den nya versionen:
- Stöd för att stÀlla in filter för extra HTTP/2-rubriker har lagts till.
- Möjlighet att Àndra storleken pÄ bufferten för inkommande TCP-paket har lagts till.
- Funktionen body_bytes_read() har lagts till.
- Filtret cache_not_modified_filter har lagts till.
- Möjlighet att föra logg över TLS-nycklar har lagts till.
- Callback-funktionen purge_response har lagts till.
KĂ€lla: opennet.ru
