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

#2030 in Network programming

Download history 4950/week @ 2024-09-23 6612/week @ 2024-09-30 4169/week @ 2024-10-07 7296/week @ 2024-10-14 5996/week @ 2024-10-21 8347/week @ 2024-10-28 12390/week @ 2024-11-04 8363/week @ 2024-11-11 14876/week @ 2024-11-18 14912/week @ 2024-11-25 11401/week @ 2024-12-02 12015/week @ 2024-12-09 12289/week @ 2024-12-16 5081/week @ 2024-12-23 5407/week @ 2024-12-30 9671/week @ 2025-01-06

32,829 downloads per month
Used in 21 crates (12 directly)

Apache-2.0

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