Cloudflare je objavio drugo izdanje okvira Pingora, dizajniranog za razvoj sigurnih mrežnih usluga visokih performansi u jeziku Rust. Proxy, izgrađen pomoću Pingore, koristi se u Cloudflare mreži za isporuku sadržaja umjesto nginxa oko godinu dana i obrađuje više od 40 milijuna zahtjeva u sekundi. Kod je napisan u Rustu i objavljen pod licencom Apache 2.0.
Ključne značajke Pingore:
- Podrška za HTTP/1 i HTTP/2 (HTTP/3 u planovima), kao i mogućnost kreiranja usluga korištenjem vlastitih protokola ili UDP/TCP.
- Mogućnost višenitne obrade zahtjeva u asinkronom načinu rada.
- Podrška za prilaganje rukovatelja povratnim pozivima i filtara koji vam omogućuju upravljanje različitim fazama obrade zahtjeva, kao i modificiranje, preusmjeravanje, blokiranje i zapisivanje zahtjeva i odgovora.
- Proxy gRPC i WebSocket.
- Spojivi balanseri opterećenja.
- Mogućnost promjene konfiguracije bez ponovnog pokretanja.
- Podrška za ažuriranje koda aplikacije bez prekida veze.
- Sredstva za prebacivanje opterećenja u slučaju kvara (failover).
- Integracija s raznim sustavima za nadzor i logiranje (Syslog, Prometheus, Sentry, OpenTelemetry).
- Podrška za TLS enkripciju (koristeći OpenSSL ili BoringSSL).
- Gotovi Rust paketi za stvaranje HTTP proxyja, rad s mrežnim protokolima, analiziranje HTTP zaglavlja, obračunavanje i ograničavanje prometa, balansiranje opterećenja, rad s Ketama distribuiranom hash tablicom, održavanje predmemorije u RAM-u i asinkronu obradu vremenskih ograničenja.
Među promjenama u novoj verziji:
- Dodana podrška za postavljanje filtara za dodatna HTTP/2 zaglavlja.
- Dodana je mogućnost promjene veličine međuspremnika dolaznih paketa za TCP.
- Dodana funkcija body_bytes_read().
- Dodan filtar cache_not_modified_filter.
- Dodana je mogućnost bilježenja TLS ključeva.
- Dodana funkcija povratnog poziva purge_response.
Izvor: opennet.ru
