Pingora 0.6 Launches: New Network Services Framework

Cloudflare published the release of the framework pingora 0.6 designed to develop protected high-performance network services in Rust. The code is written in Rust and published under the Apache 2.0 license. For over two years, Pingora has been utilized in the Cloudflare content delivery network, replacing Nginx, and is capable of processing over 40 million requests per second.

The main features of Pingora include:

  • Support for http/1 and http/2 protocols, with plans for Http/3, as well as the ability to create services using various protocols like udp/tcp.
  • Support for multi-flow processing of queries in asynchronous mode.
  • Attachment of callback-cutters and filters for controlling different stages of request processing, including modifying, redirecting, and blocking requests.
  • Provision of GRPC and WebSocket support, along with connected load balancers.
  • Capability to change configuration without restart and update application code without disruption.
  • Options for load switching in case of failover and integration with monitoring and logging systems like Syslog, Prometheus, and more.
  • Support for TLS shifting, cache maintenance, and asynchronous timeout processing.

Among the changes in the new version of Pingora:

  • Ensured preservation of names in logs during work completion to diagnose issues related to absence of Runtime components.
  • Inclusive monitoring of server execution, providing valuable information for monitoring and ensuring fault tolerance.
  • Allowed placement of compressed dictionaries in memory.
  • Addition of directives HTTPSERVERVEROPTIONS and H2OPTIONS in HTTP server and http-proxy implementation.
  • Introduction of the MadeyouReset attack to induce service refusal through manipulation of HTTP/2 control frames.
/Reports, release notes, official announcements.