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.