Cloudflare ha pubblicato il secondo rilascio del framework Pingora, progettato per sviluppare servizi di rete sicuri e ad alte prestazioni in Rust. Costruito con Pingora, un proxy utilizzato da circa un anno nella rete di distribuzione dei contenuti di Cloudflare al posto di nginx, gestisce oltre 40 milioni di richieste al secondo. Il codice è scritto in Rust ed è pubblicato sotto licenza Apache 2.0.
Principali funzionalità di Pingora:
- Supporto per HTTP/1 e HTTP/2 (in programma HTTP/3), oltre a funzionalità per la creazione di servizi che utilizzano i propri protocolli o UDP/TCP.
- Possibilità di elaborazione multithreading delle richieste in modalità asincrona.
- Supporto per l'allegato di callback e filtri, consentendo di gestire diverse fasi di elaborazione della richiesta, così come 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 (con OpenSSL o BoringSSL).
- 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:
- Aggiunta la possibilità di installare filtri per intestazioni HTTP/2 aggiuntive.
- Aggiunta la possibilità di modificare la dimensione del buffer dei pacchetti in ingresso per TCP.
- Aggiunta la funzione body_bytes_read().
- Aggiunto il filtro cache_not_modified_filter.
- Aggiunta la possibilità di mantenere un log delle chiavi TLS.
- Aggiunta la funzione di callback purge_response.
Fonte: opennet.ru
