Uscita di Pingora 0.6, framework per la creazione di servizi di rete.

Cloudflare ha pubblicato la versione 0.6 del framework Pingora, progettata per lo sviluppo di servizi di rete ad alte prestazioni e protetti nel linguaggio Rust. Già da oltre due anni, i proxy costruiti con Pingora vengono utilizzati 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:

  • Durante la fase di shutdown, è garantito il salvataggio dei nomi dei componenti runtime nel log per semplificare la diagnosi dei problemi causati dalla mancanza di componenti runtime e che conducano a ritardi durante lo spegnimento.
  • È stata attivata la tracciatura delle fasi di esecuzione server, le cui informazioni possono essere utili per il monitoraggio o per garantire la resilienza. Quando cambia la fase di esecuzione, viene generato un messaggio ExecutionPhase, che può essere intercettato tramite l'API Server::watch_execution_phase.
  • È consentito l'allocazione in memoria di dizionari compressi.
  • Nell'implementazione del server http e del proxy http sono state aggiunte le direttive HttpServerOptions e H2Options.
  • È stata implementata la protezione contro l'attacco MadeYouReset, che consente di causare un'interruzione del servizio tramite la manipolazione dei frame di controllo HTTP/2.

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