Uscita di Pingora 0.4, il framework per la creazione di servizi di rete

L'azienda Cloudflare ha pubblicato la versione 0.4 del framework Pingora, progettato per lo sviluppo di servizi di rete sicuri ad alte prestazioni in Rust. I proxy costruiti con Pingora sono già utilizzati da oltre due anni nella rete di distribuzione dei contenuti di Cloudflare al posto di nginx e gestiscono oltre 40 milioni di richieste al secondo. Il codice è scritto in Rust ed è pubblicato sotto la licenza Apache 2.0.

Caratteristiche principali di Pingora:

  • Supporto per HTTP/1 e HTTP/2 (in programma HTTP/3), e possibilità di creare servizi che utilizzano i propri protocolli o UDP/TCP.
  • Supporto per l'elaborazione multithreading delle richieste in modalità asincrona.
  • Possibilità di allegare callback e filtri che permettono di gestire le varie fasi dell'elaborazione della richiesta, oltre a modificare, reindirizzare, bloccare e registrare richieste e risposte.
  • Proxy per gRPC e WebSocket.
  • Bilanciatori di carico plug-in.
  • Possibilità di modifica della configurazione senza riavvio.
  • Supporto per l'aggiornamento del codice dell'app senza interruzione delle connessioni.
  • Strumenti per il failover in caso di guasti.
  • Integrazione con vari sistemi di monitoraggio e logging (Syslog, Prometheus, Sentry, OpenTelemetry).
  • Supporto per la crittografia TLS (viene utilizzato OpenSSL, BoringSSL o Rustls).
  • Pacchetti Rust pronti per la creazione di proxy HTTP, lavorare con protocolli di rete, analizzare gli header HTTP, monitorare e limitare il traffico, bilanciamento del carico, lavorare con tabelle hash distribuite Ketama, mantenere una cache in memoria e gestione asincrona dei timeout.

Tra le novità nella nuova versione:

  • Supporto iniziale per la libreria crittografica Rustls, che utilizza provider crittografici basati sulle librerie aws-lc-rs e ring, costruite su BoringSSL.
  • Supporto sperimentale per la piattaforma Windows.
  • Modalità TLS fittizia (dummy TLS), che può essere utilizzata in situazioni in cui non è possibile utilizzare una reale implementazione TLS.
  • Aggiunto supporto per il modulo gRPC-web per mappare le richieste dei client gRPC-web in richieste a server gRPC.
  • Fornita la possibilità di gestire connessioni H2C (HTTP/2 su TCP non crittografato) e HTTP/1 su una sola porta di rete.
  • Aggiunta la possibilità di collegare implementazioni personalizzate della funzione connect() per modificare il comportamento durante l'instaurazione di connessioni di rete, ad esempio per impostare opzioni aggiuntive per il socket o simulare errori durante i test.
  • Fornita la possibilità di ignorare le risposte informative durante il proxying, come le risposte con l'intestazione "Expect: 100-continue".
  • Aggiunto supporto per la decompressione delle risposte compresse con gzip.
  • Implementato il monitoraggio dello stato del backend.
  • Aggiunta la possibilità di legarsi a un intervallo di porte locali.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster