Podjetje Cloudflare je objavilo drugo različico ogrodja Pingora, namenjenega razvoju zaščitenih visoko zmogljivih omrežnih storitev v programskem jeziku Rust. Proksi, zgrajen s pomočjo Pingora, že približno leto dni deluje v omrežju Cloudflare za dostavo vsebin namesto nginx in obdeluje več kot 40 milijonov zahtevkov na sekundo. Koda je napisana v jeziku Rust in objavljena pod licenco Apache 2.0.
Glavne značilnosti Pingora:
- Podpora za HTTP/1 in HTTP/2 (v načrtu je HTTP/3), pa tudi možnosti za ustvarjanje storitev, ki uporabljajo svoje protokole ali UDP/TCP.
- Možnost večpredprocesne obdelave zahtevkov v asinhronem načinu.
- Podpora za pritrjevanje callback obdelovalcev in filtrirnih mehanizmov, ki omogočajo upravljanje z različnimi fazami obdelave zahtevkov, pa tudi spreminjanje, preusmerjanje, blokiranje in beleženje zahtevkov ter odgovorov.
- Proxiranje gRPC in WebSocket.
- Priklopni uravnavači obremenitve.
- Možnost spreminjanja konfiguracije brez ponovnega zagona.
- Podpora za posodobitev kode aplikacije brez prekinitev povezav.
- Orodja za preklapljanje obremenitve v primeru okvare (failover).
- Integracija z različnimi sistemi za spremljanje in evidentiranje (Syslog, Prometheus, Sentry, OpenTelemetry).
- Podpora za TLS šifriranje (uporablja se OpenSSL ali BoringSSL).
- Kontejnerji Rust za ustvarjanje HTTP-proxy, delo z omrežnimi protokoli, razčlenjevanje HTTP-headerjev, spremljanje in omejevanje prometa, uravnoteženje obremenitve, delo s porazdeljeno hash-tabelo Ketama, vzdrževanje predpomnilnika v pomnilniku in asinhrono obdelavo časovnih iztekanj.
Među promenama u novoj verziji:
- Dodana podpora za nastavljanje filtrov za dodatne glave HTTP/2.
- Dodana možnost spreminjanja velikosti predpomnilnika prihajajočih paketov za TCP.
- Dodana funkcija body_bytes_read().
- Dodan filter cache_not_modified_filter.
- Dodana možnost beleženja TLS ključev.
- Dodana callback funkcija purge_response.
Izvor: opennet.ru
