README.md
Pingora is a Rust framework to build fast, reliable and programmable networked systems.
Pingora is battle tested as it has been serving more than 40 million Internet requests per second for more than a few years.
See our quick starting guide to see how easy it is to build a load balancer.
Our user guide covers more topics such as how to configure and run Pingora servers, as well as how to build custom HTTP servers and proxy logic on top of Pingora's framework.
API docs are also available for all the crates.
Note that Pingora proxy integration with caching should be considered experimental, and as such APIs related to caching are currently highly volatile.
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)
Windows support is preliminary by community's best effort only.
Both x86_64 and aarch64 architectures will be supported.
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. However, we generally will not bump the highest MSRV across the workspace without a sufficiently compelling reason.
Our current MSRV is 1.84.
Currently not all crates enforce rust-version as it is possible to use some crates on lower versions.
Some of the crates in this repository have dependencies on additional tools and libraries that must be satisfied in order to build them:
Please see our contribution guidelines.
This project is Licensed under Apache License, Version 2.0.