Компания Cloudflare опубликовала второй выпуск фреймворка Pingora, предназначенного для разработки защищённых высокопроизводительных сетевых сервисов на языке Rust. Построенный при помощи Pingora прокси около года используется в сети доставки контента Cloudflare вместо nginx и обрабатывает более 40 млн запросов в секунду. Код написан на языке Rust и опубликован под лицензией Apache 2.0.
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:
- Добавлена поддержка установки фильтров для дополнительных заголовков HTTP/2.
- Добавлена возможность изменения размера буфера входящих пакетов для TCP.
- Добавлена функция body_bytes_read().
- Добавлен фильтр cache_not_modified_filter.
- Добавлена возможность ведения лога TLS-ключей.
- Добавлена callback-функция purge_response.
Allikas: opennet.ru
