Pingora is a framework for building networked systems and proxies 2024

Pingora is a framework for building networked systems and proxies with Rust, a fast and reliable programming language.

Pingora has proven its performance and reliability by handling more than 40 million Internet requests per second for several years.

Features that Pingora offers are:


- End-to-end proxying for HTTP 1/2, gRPC, and WebSocket protocols
- TLS support with OpenSSL or BoringSSL libraries
- Graceful reload of configuration and code
- Flexible load balancing and failover strategies
- Integration with various observability tools

You might want to use Pingora if:


- You care about security: Pingora avoids memory errors that are common in C/C++ services
- You care about speed: Pingora is optimized for high throughput and low latency
- You care about customization: Pingora lets you program your own logic and behavior with its APIs

To get started with Pingora, you can follow our quick start guide to build a simple load balancer.

You can also read our user guide to learn more about how to configure and run Pingora servers, and how to create custom HTTP servers and proxy logic using Pingora's framework.

You can also find the API documentation for all the crates in Pingora.

Some of the crates that Pingora consists of are:


- Pingora: the main crate that exposes the APIs to build networked systems and proxies
- Pingora-core: the crate that defines the core protocols, functionalities, and traits
- Pingora-proxy: the crate that implements the logic and APIs to build HTTP proxies
- Pingora-error: the crate that defines the common error type used across Pingora crates
- Pingora-HTTP: the crate that defines the HTTP header types and APIs
- Pingora-openssl & pingora-boringssl: the crates that provide SSL extensions and APIs
- Pingora-ketama: the crate that implements the Ketama consistent hashing algorithm
- Pingora-limits: the crate that implements efficient counting algorithms
- Pingora-load-balancing: the crate that provides load balancing algorithm extensions for pingora-proxy
- Pingora-memory-cache: the crate that provides async in-memory caching with cache lock to prevent cache stampede
- Pingora-timeout: the crate that provides a more efficient async timer system
- TinyUfo: the crate that implements the caching algorithm behind pingora-memory-cache

Pingora works best on Linux systems, which is our primary target platform.

We also try to make Pingora compatible with other Unix-like systems, such as macOS, but some features may be missing.

Pingora supports both x86_64 and aarch64 architectures.

Pingora requires a Rust version that is at least 6 months old. We update our MSRV (minimum supported Rust version) policy every 6 months.

Our current MSRV is 1.72.



Post a Comment

Previous Post Next Post