Uscita di Pingora 0.4, un 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 e ad alte prestazioni in linguaggio Rust. Già da oltre due anni, un proxy costruito con Pingora è utilizzato nella rete di distribuzione dei contenuti di Cloudflare al posto di nginx e gestisce oltre 40 milioni di richieste al secondo. Il codice è scritto in Rust ed è pubblicato con licenza Apache 2.0.

Principali funzionalità di Pingora:

  • Supporto per HTTP/1 e HTTP/2 (presto anche HTTP/3), con la possibilità di creare servizi che utilizzano i propri protocolli o UDP/TCP.
  • Supporto per l'elaborazione multithreading delle richieste in modalità asincrona.
  • Possibilità di ancorare gestori di callback e filtri, che permettono di gestire diverse fasi dell'elaborazione della richiesta, oltre a modificare, reindirizzare, bloccare e registrare richieste e risposte.
  • Proxy gRPC e WebSocket.
  • Bilanciatori di carico plug-and-play.
  • Possibilità di modificare la configurazione senza riavviare.
  • Supporto per l'aggiornamento del codice dell'applicazione senza interrompere le connessioni.
  • Strumenti per il failover in caso di guasti.
  • Integrazione con diversi sistemi di monitoraggio e registrazione (Syslog, Prometheus, Sentry, OpenTelemetry).
  • Supporto per la crittografia TLS (utilizza OpenSSL, BoringSSL o Rustls).
  • Pacchetti Rust pronti per creare proxy HTTP, lavorare con protocolli di rete, analizzare intestazioni HTTP, contare e limitare il traffico, bilanciare il carico, gestire una tabella hash distribuita Ketama, mantenere una cache in memoria e gestire in modo asincrono i timeout.

Tra le modifiche nella nuova versione:

  • Supporto iniziale per la libreria crittografica Rustls, che utilizza provider crittografici basati sulle librerie aws-lc-rs e ring, fondati su BoringSSL.
  • Supporto sperimentale per la piattaforma Windows.
  • Modalità TLS fittizia (dummy TLS), utilizzabile in situazioni in cui non è possibile utilizzare un'implementazione reale di TLS.
  • Aggiunto supporto per il modulo gRPC-web per tradurre le richieste dei client gRPC-web in richieste a server gRPC.
  • È stata fornita la possibilità di gestire connessioni H2C (HTTP/2 su TCP nudo, senza crittografia) e HTTP/1 su una singola porta di rete.
  • Aggiunta la possibilità di collegare implementazioni personalizzate della funzione connect() per modificare il comportamento durante l'impostazione della connessione di rete, ad esempio, per impostare opzioni aggiuntive per il socket o simulare errori durante i test.
  • È stata fornita la possibilità di ignorare le risposte informative durante il proxying, come le risposte con l'intestazione "Expect: 100-continue".
  • Aggiunto supporto per l'espansione delle risposte compresse con gzip.
  • Realizzato il monitoraggio dello stato del backend.
  • Aggiunta la possibilità di vincolarsi 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