Vydanie Pingora 0.4, rámca na vytváranie sieťových služieb

Cloudflare zverejnilo vydanie rámca Pingora 0.4, určeného na vývoj bezpečných, vysokovýkonných sieťových služieb v jazyku Rust. Proxy vytvorený pomocou Pingora sa používa v sieti na doručovanie obsahu Cloudflare namiesto Nginx už viac ako dva roky a spracováva viac ako 40 miliónov požiadaviek za sekundu. Kód je napísaný v jazyku Rust a publikovaný pod licenciou Apache 2.0.

Kľúčové vlastnosti Pingora:

  • Podpora HTTP/1 a HTTP/2 (HTTP/3 v plánoch), ako aj možnosť vytvárať služby pomocou vlastných protokolov alebo UDP/TCP.
  • Podpora viacvláknového spracovania požiadaviek v asynchrónnom režime.
  • Možnosť pripojiť obslužné programy a filtre spätného volania, ktoré vám umožňujú spravovať rôzne fázy spracovania požiadaviek, ako aj upravovať, presmerovávať, blokovať a zaznamenávať požiadavky a odpovede.
  • Proxy gRPC a WebSocket.
  • Pripojiteľné vyrovnávače záťaže.
  • Schopnosť zmeniť konfiguráciu bez reštartovania.
  • Podpora aktualizácie kódu aplikácie bez prerušenia pripojenia.
  • Prostriedky na spínanie záťaže v prípade poruchy (failover).
  • Integrácia s rôznymi monitorovacími a logovacími systémami (Syslog, Prometheus, Sentry, OpenTelemetry).
  • Podpora šifrovania TLS (pomocou OpenSSL, BoringSSL alebo Rustls).
  • Hotové Rust balíčky na vytváranie HTTP proxy, prácu so sieťovými protokolmi, parsovanie HTTP hlavičiek, účtovanie a obmedzovanie prevádzky, load balancing, prácu s distribuovanou hash tabuľkou Ketama, udržiavanie cache v RAM a asynchrónne spracovanie timeoutov.

Medzi zmeny v novej verzii:

  • Počiatočná podpora pre kryptografickú knižnicu Rustls pomocou poskytovateľov kryptomien založených na aws-lc-rs a kruhových knižníc založených na BoringSSL.
  • Podpora experimentálnej platformy Windows.
  • Dummy TLS režim, ktorý je možné použiť v situáciách, keď nie je možné použiť skutočnú implementáciu TLS.
  • Pridaná podpora pre modul gRPC-web na preklad požiadaviek klienta gRPC-web na požiadavky pre server gRPC.
  • Poskytuje možnosť spracovať pripojenia H2C (HTTP/2 cez holý TCP, bez šifrovania) a HTTP/1 na rovnakom sieťovom porte.
  • Pridaná možnosť pripojenia vlastných implementácií funkcie connect() na zmenu správania pri vytváraní sieťového pripojenia, napríklad nastavenie ďalších možností pre soket alebo simuláciu chýb počas testovania.
  • Poskytuje možnosť ignorovať informačné odpovede pri proxy, ako sú odpovede s hlavičkou "Očakávať: 100 pokračovaní".
  • Pridaná podpora pre rozbaľovanie odpovedí komprimovaných gzip.
  • Implementované účtovanie stavu backendu na účely monitorovania.
  • Pridaná možnosť viazať sa na rad miestnych portov.

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre stránky s DDoS ochranou, VPS VDS servery 🔥 Kúpte si spoľahlivý webhosting s ochranou DDoS, VPS VDS servery | ProHoster