3 unstable releases

0.2.0 May 10, 2024
0.1.1 Apr 18, 2024
0.1.0 Feb 28, 2024

#5 in #pingora

Download history 496/week @ 2024-02-24 656/week @ 2024-03-02 633/week @ 2024-03-09 753/week @ 2024-03-16 470/week @ 2024-03-23 694/week @ 2024-03-30 744/week @ 2024-04-06 502/week @ 2024-04-13 614/week @ 2024-04-20 695/week @ 2024-04-27 574/week @ 2024-05-04 621/week @ 2024-05-11 630/week @ 2024-05-18 514/week @ 2024-05-25 395/week @ 2024-06-01 524/week @ 2024-06-08

2,137 downloads per month
Used in 11 crates (8 directly)

Apache-2.0

1MB
21K 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

~37–62MB
~1M SLoC