Our user guide covers more topics such as how to configure and run Pingora servers, as well as how to build custom HTTP server and proxy logic on top of Pingora's framework.
API docs are also available for all the crates.
Notable crates in this workspace
Pingora: the "public facing" crate to build to build networked systems and proxies.
Pingora-core: this crates defined the protocols, functionalities and basic traits.
Pingora-proxy: the logic and APIs to build HTTP proxies.
Pingora-error: the common error type used across Pingora crates
Pingora-http: the HTTP header definitions and APIs
Pingora-openssl & pingora-boringssl: SSL related extensions and APIs
Pingora-load-balancing: load balancing algorithm extensions for pingora proxy
Pingora-memory-cache: Async in-memory caching with cache lock to prevent cache stampede.
Pingora-timeout: A more efficient async timer system.
TinyUfo: The caching algorithm behind pingora-memory-cache.
System requirements
Systems
Linux is our tier 1 environment and main focus.
We will try our best for most code to compile for Unix environments. This is for developers and users to have an easier time developing with Pingora in Unix-like environments like macOS (though some features might be missing)
Both x86_64 and aarch64 architectures will be supported.
Rust version
Pingora keeps a rolling MSRV (minimum supported Rust version) policy of 6 months. This means we will accept PRs that upgrade the MSRV as long as the new Rust version used is at least 6 months old.