5 releases (3 breaking)
0.4.0 | Nov 1, 2024 |
---|---|
0.3.0 | Jul 12, 2024 |
0.2.0 | May 10, 2024 |
0.1.1 | Apr 18, 2024 |
0.1.0 | Feb 28, 2024 |
#1992 in Network programming
44,051 downloads per month
Used in 19 crates
(11 directly)
1.5MB
26K
SLoC
pingora-proxy
Programmable HTTP proxy built on top of [pingora_core].
Features
- HTTP/1.x and HTTP/2 for both downstream and upstream
- Connection pooling
- TLSv1.3, mutual TLS, customizable CA
- Request/Response scanning, modification or rejection
- Dynamic upstream selection
- Configurable retry and failover
- Fully programmable and customizable at any stage of a HTTP request
How to use
Users of this crate defines their proxy by implementing [ProxyHttp] trait, which contains the callbacks to be invoked at each stage of a HTTP request.
Then the service can be passed into [http_proxy_service()
] for a pingora_core::server::Server to
run it.
See examples/load_balancer.rs
for a detailed example.
Dependencies
~28–53MB
~1M SLoC