Lansarea Pingora 0.4, un cadru pentru crearea serviciilor de rețea

Compania Cloudflare a lansat versiunea 0.4 a framework-ului Pingora, destinat dezvoltării de servicii de rețea securizate și de înaltă performanță în limbajul Rust. Proxy-ul construit cu Pingora este folosit de mai bine de doi ani în rețeaua de livrare a conținutului Cloudflare, înlocuind nginx și procesând peste 40 de milioane de cereri pe secundă. Codul este scris în limbajul Rust și publicat sub licența Apache 2.0.

Funcționalitățile principale ale Pingora:

  • Suport pentru HTTP/1 și HTTP/2 (în planuri pentru HTTP/3), precum și posibilitatea de a crea servicii care folosesc protocoale proprii sau UDP/TCP.
  • Suport pentru procesarea multiplă a cererilor în mod asincron.
  • Posibilitatea de a atașa callback-uri și filtre care permit gestionarea diferitelor etape ale procesării cererii, precum și modificarea, redirecționarea, blocarea și jurnalizarea cererilor și răspunsurilor.
  • Proxificare gRPC și WebSocket.
  • Balansatoare de încărcare plugin.
  • Capacitatea de a modifica configurația fără a reporni.
  • Suport pentru actualizarea codului aplicației fără a întrerupe conexiunile.
  • Mijloace de comutare a încărcării în caz de defecțiune (failover).
  • Integrare cu diferite sisteme de monitorizare și jurnalizare (Syslog, Prometheus, Sentry, OpenTelemetry).
  • Suport pentru criptarea TLS (se utilizează OpenSSL, BoringSSL sau Rustls).
  • Pachete Rust gata făcute pentru crearea de http-proxy, lucrul cu protocoalele de rețea, parsarea header-elor HTTP, contabilizarea și limitarea traficului, balansarea încărcării, lucrul cu hash-tabele distribuite Ketama, menținerea cache-ului în memorie și procesarea asincronă a timeout-urilor.

Printre modificările din noua versiune:

  • Suport inițial pentru biblioteca criptografică Rustls, care utilizează furnizori de criptografie bazați pe bibliotecile aws-lc-rs și ring, bazate pe BoringSSL.
  • Suport experimental pentru platforma Windows.
  • Modul TLS fictiv (dummy TLS), care poate fi aplicat în situații în care nu este posibil să se utilizeze o implementare reală a TLS.
  • A fost adăugat suport pentru modulul gRPC-web pentru a traduce cererile clienților gRPC-web în cereri la server gRPC.
  • A fost posibilă procesarea conexiunilor H2C (HTTP/2 peste TCP simplu, fără criptare) și HTTP/1 pe același port de rețea.
  • A fost adăugată posibilitatea de a conecta implementări proprii ale funcției connect() pentru a modifica comportamentul la stabilirea unei conexiuni de rețea, de exemplu, pentru a seta opțiuni suplimentare pentru socket sau pentru a simula erori în timpul testării.
  • A fost permisă ignorarea răspunsurilor informative în timpul proxy-ului, cum ar fi răspunsurile cu antetul „Expect: 100-continue”.
  • A fost adăugat suport pentru decompresia răspunsurilor comprimate cu metoda gzip.
  • A fost implementată monitorizarea stării backend-ului în scopuri de supraveghere.
  • A fost adăugată posibilitatea de a lega la o gamă de porturi locale.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster