Cloudflare on välja andnud teise väljaande Pingora raamistikust, mis on mõeldud turvaliste ja kõrge jõudlusega võrguteenuste arendamiseks Rusti keeles. Pingora abil ehitatud pöördproksi on kasutusel Cloudflare'i sisu edastamise võrgus (CDN) juba ligikaudu aasta ning see töötleb üle 40 miljoni päringu sekundis. Kood on kirjutatud Rusti keeles ja avaldatud litsentsi Apache 2.0 alusel.
Pingora põhifunktsionaalsused:
- Toetab HTTP/1 ja HTTP/2 (plaanis on HTTP/3) ning võimaldab luua teenuseid, mis kasutavad oma protokolle või UDP/TCP.
- Pöörab tähelepanu paljude päringute töötlemise võimalusele asünkroonses režiimis.
- Toetab callback-käitjaid ja filtreid, mis võimaldavad hallata päringute erinevaid töötlusetappe ning samuti muuta, ümber suunata, blokeerida ja logida päringuid ja vastuseid.
- gRPC ja WebSocketi proxü.
- Liidetavad koormuse tasakaalustajad.
- Pakub võimalust muuta konfiguratsiooni ilma taaskäivituseta.
- Toetab rakenduse koodi uuendamist ühenduste katkestamata.
- Rikkete korral koormuse üleviimise tööriistad (failover).
- Integreerimine erinevate jälgimis- ja logimisüsteemidega (Syslog, Prometheus, Sentry, OpenTelemetry).
- Toetab TLS-i krüpteerimist (kasutatakse OpenSSL-i või BoringSSL-i).
- Valmis Rust-paketid HTTP-proxide loomiseks, võrguprotokollide haldamiseks, HTTP-peade analüüsimiseks, liikluse arvestamiseks ja piiramiseks, koormuse jagamiseks, jaotatud hash-tabeli Ketama kasutamiseks, vahemälu aktiivmälu hoidmiseks ja asünkroosse ajakauguse töötlemiseks.
Uue versiooni muudatuste hulgas on:
- Lisatud tugi HTTP/2 täiendavate pealkirjade filtrite seadistamiseks.
- Lisatud võimalus TCP sissetulevate paketide puhvri suuruse muutmiseks.
- Lisatud funktsioon body_bytes_read().
- Lisatud filter cache_not_modified_filter.
- Lisatud võimalus TLS- võtmete logimiseks.
- Lisatud tagasiside funktsioon purge_response.
Allikas: opennet.ru
