PINGORA 0.2 RELEASED

Cloudflare Releases Second Version of Pingora Framework for Developing High-Performance Network Services

Cloudflare has recently published the second release of Pingora, a framework designed to develop secure high-performance network services in RUST. The proxy built using Pingora has been in use at Cloudflare’s content delivery network for about a year, processing over 40 million requests per second, replacing Nginx. The code is written in Rust and is available under the Apache 2.0 license.

Main Features of Pingora:

  • Support for HTTP/1 and HTTP/2 (with plans for HTTP/3) and the ability to create services using various protocols such as UDP/TCP.
  • Possibility of processing requests in asynchronous mode with multi-flow support.
  • Attachment of callback-cutters and filters for controlling different stages of request processing and modifying, redirecting, blocking, and logging requests and responses.
  • GRPC and WebSocket support.
  • Integration of load balancers.
  • Configuration changes can be made without restarting.
  • Ability to update application code without disrupting connections.
  • Failover mechanism for switching the load in case of failure.
  • Integration with monitoring and logging systems like Syslog, Prometheus, Sentry, Opentelemetry.
  • Support for TLS offloading using Openssl or Boringssl.
  • Ready-to-use Rust packages for creating HTTP Proxies, working with network protocols, analyzing HTTP headers, managing traffic limitations, load balancing, distributed KHETAMA hash, in-memory caching, and asynchronous processing of timeouts.

Changes in the New Version Include:

  • Added support for installing filters for additional HTTP/2 headers.
  • Ability to change the size of the buffer for incoming TCP packets.
  • Introduction of Body_bytes_read() function.
  • New cache_not_modified_filter.
  • Logging capability for TLS-key.
  • New Callback Function Purge_Response.
/Reports, release notes, official announcements.