Cloudflare has released the first version of the Pingora framework, designed for developing secure, high-performance network services in Rust. Built using Pingora, a proxy has been in use for about a year in Cloudflare's content delivery network instead of nginx, handling over 40 million requests per second. The code is written in Rust and published under the Apache 2.0 license.
Main Features:
- Support for HTTP/1 and HTTP/2 (with plans for HTTP/3), as well as capabilities for building services that use custom protocols or UDP/TCP.
- Ability to handle requests in multithreaded asynchronous mode.
- Support for attaching callback handlers and filters that allow management of various stages of request processing, as well as modifying, redirecting, blocking, and logging requests and responses.
- gRPC and WebSocket proxying.
- Pluggable load balancers.
- Ability to change configuration without restarting.
- Support for updating application code without dropping connections.
- Tools for failover load switching.
- Integration with various monitoring and logging systems (Syslog, Prometheus, Sentry, OpenTelemetry).
- Support for TLS encryption (uses OpenSSL or BoringSSL).
- Pre-built Rust packages for creating HTTP proxies, working with network protocols, parsing HTTP headers, traffic accounting and limiting, load balancing, working with a distributed hash table Ketama, maintaining an in-memory cache, and asynchronous processing of timeouts.
Source: opennet.ru
