
Pe 5 aprilie 2024, Cloudflare a lansat prima versiune publică a proiectului deschis Pingora v0.1.0 (deja v0.1.1). Este un cadru asincron multiproces pe Rust, care ajută la crearea de servicii proxy HTTP. Proiectul este utilizat pentru a crea servicii care asigură o parte semnificativă a traficului în Cloudflare (în locul utilizării Nginx). Codul sursă al Pingora a fost publicat pe GitHub sub licența Apache 2.0.
Pingora oferă biblioteci și API-uri pentru crearea de servicii deasupra HTTP/1 și HTTP/2, TLS sau pur și simplu TCP/UDP. Ca proxy,server acesta suportă proxying-ul de tip end to end pentru HTTP/1 și HTTP/2, gRPC și WebSocket. Suportul pentru HTTP/3 este planificat. Pingora include, de asemenea, strategii personalizabile de echilibrare a sarcinii și failover. Pentru a respecta cerințele de securitate, suportă atât bibliotecile OpenSSL, cât și BoringSSL, care sunt conforme cu standardele FIPS (standarde federale de procesare a informațiilor din SUA) și criptarea post-quantum.
În plus față de aceste funcții, Pingora oferă filtre și callback-uri care permit utilizatorilor să configureze complet modul în care serviciul ar trebui să proceseze, să transforme și să redirecționeze solicitările.
În modul de operare, Pingora asigură o repornire lină fără timpi de nefuncționare pentru actualizări autonome, fără a pierde nicio solicitare în curs de desfășurare. Syslog, Prometheus, Sentry, OpenTelemetry și alte instrumente necesare de monitorizare se integrează ușor cu Pingora.
Capabilitățile Pingora: utilizarea Async Rust, suport pentru proxy end to end HTTP 1/2, TLS peste OpenSSL sau BoringSSL, gRPC și proxying de web socket-uri, repornire elegantă, strategii personalizabile de echilibrare a sarcinii și failover, suport pentru diverse instrumente de monitorizare.
În versiunea Pingora v0.1.1, s-au corectat erorile descoperite anterior, a fost îmbunătățită performanța algoritmului pingora-ketama, s-au adăugat mai multe benchmarck-uri TinyUFO și teste pentru pingora-cache purge, a fost limitată dimensiunea buffer-ului pentru jurnalele de erori InvalidHTTPHeader, precum și s-au corectat greșelile de tipografică și s-au efectuat modificările necesare în comentariile și documentația proiectului.
Sursa: linux.org.ru
