gitextract__dwmq04u/ ├── .bleep ├── .cargo/ │ ├── audit.toml │ └── config.toml ├── .github/ │ ├── CONTRIBUTING.md │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ └── feature_request.md │ └── workflows/ │ ├── audit.yml │ ├── build.yml │ ├── docs.yml │ ├── mark-stale.yaml │ └── semgrep.yml ├── .gitignore ├── .rustfmt.toml ├── CHANGELOG.md ├── Cargo.toml ├── Dockerfile ├── LICENSE ├── README.md ├── cliff.toml ├── clippy.toml ├── docs/ │ ├── README.md │ ├── quick_start.md │ └── user_guide/ │ ├── conf.md │ ├── ctx.md │ ├── daemon.md │ ├── error_log.md │ ├── errors.md │ ├── failover.md │ ├── graceful.md │ ├── index.md │ ├── internals.md │ ├── modify_filter.md │ ├── panic.md │ ├── peer.md │ ├── phase.md │ ├── phase_chart.md │ ├── pooling.md │ ├── prom.md │ ├── rate_limiter.md │ ├── start_stop.md │ └── systemd.md ├── pingora/ │ ├── Cargo.toml │ ├── LICENSE │ ├── examples/ │ │ ├── app/ │ │ │ ├── echo.rs │ │ │ ├── mod.rs │ │ │ └── proxy.rs │ │ ├── client.rs │ │ ├── server.rs │ │ └── service/ │ │ ├── echo.rs │ │ ├── mod.rs │ │ └── proxy.rs │ ├── src/ │ │ └── lib.rs │ └── tests/ │ └── pingora_conf.yaml ├── pingora-boringssl/ │ ├── Cargo.toml │ ├── LICENSE │ └── src/ │ ├── boring_tokio.rs │ ├── ext.rs │ └── lib.rs ├── pingora-cache/ │ ├── Cargo.toml │ ├── LICENSE │ ├── benches/ │ │ ├── lru_memory.rs │ │ ├── lru_serde.rs │ │ └── simple_lru_memory.rs │ └── src/ │ ├── cache_control.rs │ ├── eviction/ │ │ ├── lru.rs │ │ ├── mod.rs │ │ └── simple_lru.rs │ ├── filters.rs │ ├── hashtable.rs │ ├── key.rs │ ├── lib.rs │ ├── lock.rs │ ├── max_file_size.rs │ ├── memory.rs │ ├── meta.rs │ ├── predictor.rs │ ├── put.rs │ ├── storage.rs │ ├── trace.rs │ └── variance.rs ├── pingora-core/ │ ├── Cargo.toml │ ├── LICENSE │ ├── examples/ │ │ ├── bootstrap_as_a_service.rs │ │ ├── client_cert.rs │ │ ├── keys/ │ │ │ ├── client-ca/ │ │ │ │ ├── cert.pem │ │ │ │ └── key.pem │ │ │ ├── clients/ │ │ │ │ ├── cert-1.pem │ │ │ │ ├── cert-2.pem │ │ │ │ ├── invalid-cert.pem │ │ │ │ ├── invalid-key.pem │ │ │ │ ├── key-1.pem │ │ │ │ └── key-2.pem │ │ │ └── server/ │ │ │ ├── cert.pem │ │ │ └── key.pem │ │ └── service_dependencies.rs │ ├── src/ │ │ ├── apps/ │ │ │ ├── http_app.rs │ │ │ ├── mod.rs │ │ │ └── prometheus_http_app.rs │ │ ├── connectors/ │ │ │ ├── http/ │ │ │ │ ├── custom/ │ │ │ │ │ └── mod.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── v1.rs │ │ │ │ └── v2.rs │ │ │ ├── l4.rs │ │ │ ├── mod.rs │ │ │ ├── offload.rs │ │ │ └── tls/ │ │ │ ├── boringssl_openssl/ │ │ │ │ └── mod.rs │ │ │ ├── mod.rs │ │ │ ├── rustls/ │ │ │ │ └── mod.rs │ │ │ └── s2n/ │ │ │ └── mod.rs │ │ ├── lib.rs │ │ ├── listeners/ │ │ │ ├── connection_filter.rs │ │ │ ├── l4.rs │ │ │ ├── mod.rs │ │ │ └── tls/ │ │ │ ├── boringssl_openssl/ │ │ │ │ └── mod.rs │ │ │ ├── mod.rs │ │ │ ├── rustls/ │ │ │ │ └── mod.rs │ │ │ └── s2n/ │ │ │ └── mod.rs │ │ ├── modules/ │ │ │ ├── http/ │ │ │ │ ├── compression.rs │ │ │ │ ├── grpc_web.rs │ │ │ │ └── mod.rs │ │ │ └── mod.rs │ │ ├── protocols/ │ │ │ ├── digest.rs │ │ │ ├── http/ │ │ │ │ ├── body_buffer.rs │ │ │ │ ├── bridge/ │ │ │ │ │ ├── grpc_web.rs │ │ │ │ │ └── mod.rs │ │ │ │ ├── client.rs │ │ │ │ ├── compression/ │ │ │ │ │ ├── brotli.rs │ │ │ │ │ ├── gzip.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── zstd.rs │ │ │ │ ├── conditional_filter.rs │ │ │ │ ├── custom/ │ │ │ │ │ ├── client.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── server.rs │ │ │ │ ├── date.rs │ │ │ │ ├── error_resp.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── server.rs │ │ │ │ ├── subrequest/ │ │ │ │ │ ├── body.rs │ │ │ │ │ ├── dummy.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── server.rs │ │ │ │ ├── v1/ │ │ │ │ │ ├── body.rs │ │ │ │ │ ├── client.rs │ │ │ │ │ ├── common.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── server.rs │ │ │ │ └── v2/ │ │ │ │ ├── client.rs │ │ │ │ ├── mod.rs │ │ │ │ └── server.rs │ │ │ ├── l4/ │ │ │ │ ├── ext.rs │ │ │ │ ├── listener.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── socket.rs │ │ │ │ ├── stream.rs │ │ │ │ └── virt.rs │ │ │ ├── mod.rs │ │ │ ├── raw_connect.rs │ │ │ ├── tls/ │ │ │ │ ├── boringssl_openssl/ │ │ │ │ │ ├── client.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── server.rs │ │ │ │ │ └── stream.rs │ │ │ │ ├── digest.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── noop_tls/ │ │ │ │ │ └── mod.rs │ │ │ │ ├── rustls/ │ │ │ │ │ ├── client.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── server.rs │ │ │ │ │ └── stream.rs │ │ │ │ └── s2n/ │ │ │ │ ├── client.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── server.rs │ │ │ │ └── stream.rs │ │ │ └── windows.rs │ │ ├── server/ │ │ │ ├── bootstrap_services.rs │ │ │ ├── configuration/ │ │ │ │ └── mod.rs │ │ │ ├── daemon.rs │ │ │ ├── mod.rs │ │ │ └── transfer_fd/ │ │ │ └── mod.rs │ │ ├── services/ │ │ │ ├── background.rs │ │ │ ├── listening.rs │ │ │ └── mod.rs │ │ ├── tls/ │ │ │ └── mod.rs │ │ ├── upstreams/ │ │ │ ├── mod.rs │ │ │ └── peer.rs │ │ └── utils/ │ │ ├── mod.rs │ │ └── tls/ │ │ ├── boringssl_openssl.rs │ │ ├── mod.rs │ │ ├── rustls.rs │ │ └── s2n.rs │ └── tests/ │ ├── certs/ │ │ ├── alt-ca.crt │ │ ├── alt-server.crt │ │ ├── ca.crt │ │ ├── server.crt │ │ └── server.key │ ├── keys/ │ │ ├── key.pem │ │ ├── public.pem │ │ ├── server.crt │ │ └── server.csr │ ├── nginx.conf │ ├── nginx_proxy.conf │ ├── pingora_conf.yaml │ ├── server_phase_fastshutdown.rs │ ├── server_phase_gracefulshutdown.rs │ ├── test_basic.rs │ └── utils/ │ └── mod.rs ├── pingora-error/ │ ├── Cargo.toml │ ├── LICENSE │ └── src/ │ ├── immut_str.rs │ └── lib.rs ├── pingora-header-serde/ │ ├── Cargo.toml │ ├── LICENSE │ ├── samples/ │ │ └── test/ │ │ ├── 1 │ │ ├── 2 │ │ ├── 3 │ │ ├── 4 │ │ ├── 5 │ │ ├── 6 │ │ └── 7 │ └── src/ │ ├── dict.rs │ ├── lib.rs │ ├── thread_zstd.rs │ └── trainer.rs ├── pingora-http/ │ ├── Cargo.toml │ ├── LICENSE │ └── src/ │ ├── case_header_name.rs │ └── lib.rs ├── pingora-ketama/ │ ├── Cargo.toml │ ├── LICENSE │ ├── benches/ │ │ ├── memory.rs │ │ └── simple.rs │ ├── examples/ │ │ └── health_aware_selector.rs │ ├── src/ │ │ └── lib.rs │ ├── test-data/ │ │ ├── README.md │ │ ├── nginx.conf │ │ ├── sample-nginx-upstream.csv │ │ └── trace.sh │ └── tests/ │ ├── backwards_compat.rs │ └── old_version/ │ └── mod.rs ├── pingora-limits/ │ ├── Cargo.toml │ ├── LICENSE │ ├── benches/ │ │ └── benchmark.rs │ └── src/ │ ├── estimator.rs │ ├── inflight.rs │ ├── lib.rs │ └── rate.rs ├── pingora-load-balancing/ │ ├── Cargo.toml │ ├── LICENSE │ └── src/ │ ├── background.rs │ ├── discovery.rs │ ├── health_check.rs │ ├── lib.rs │ └── selection/ │ ├── algorithms.rs │ ├── consistent.rs │ ├── mod.rs │ └── weighted.rs ├── pingora-lru/ │ ├── Cargo.toml │ ├── LICENSE │ ├── benches/ │ │ ├── bench_linked_list.rs │ │ └── bench_lru.rs │ └── src/ │ ├── lib.rs │ └── linked_list.rs ├── pingora-memory-cache/ │ ├── Cargo.toml │ ├── LICENSE │ └── src/ │ ├── lib.rs │ └── read_through.rs ├── pingora-openssl/ │ ├── Cargo.toml │ ├── LICENSE │ └── src/ │ ├── ext.rs │ └── lib.rs ├── pingora-pool/ │ ├── Cargo.toml │ ├── LICENSE │ └── src/ │ ├── connection.rs │ ├── lib.rs │ └── lru.rs ├── pingora-proxy/ │ ├── Cargo.toml │ ├── LICENSE │ ├── examples/ │ │ ├── backoff_retry.rs │ │ ├── conf.yaml │ │ ├── connection_filter.rs │ │ ├── ctx.rs │ │ ├── gateway.rs │ │ ├── grpc_web_module.rs │ │ ├── load_balancer.rs │ │ ├── modify_response.rs │ │ ├── multi_lb.rs │ │ ├── rate_limiter.rs │ │ ├── use_module.rs │ │ └── virtual_l4.rs │ ├── src/ │ │ ├── lib.rs │ │ ├── proxy_cache.rs │ │ ├── proxy_common.rs │ │ ├── proxy_custom.rs │ │ ├── proxy_h1.rs │ │ ├── proxy_h2.rs │ │ ├── proxy_purge.rs │ │ ├── proxy_trait.rs │ │ └── subrequest/ │ │ ├── mod.rs │ │ └── pipe.rs │ └── tests/ │ ├── headers.dict │ ├── keys/ │ │ ├── key.pem │ │ ├── public.pem │ │ ├── server.crt │ │ └── server.csr │ ├── pingora_conf.yaml │ ├── test_basic.rs │ ├── test_upstream.rs │ └── utils/ │ ├── cert.rs │ ├── conf/ │ │ ├── keys/ │ │ │ ├── README.md │ │ │ ├── ca1.crt │ │ │ ├── ca1.key.pem │ │ │ ├── ca2.crt │ │ │ ├── ca_chain.cert │ │ │ ├── ca_chain.srl │ │ │ ├── cert_chain.crt │ │ │ ├── curve_test.384.crt │ │ │ ├── curve_test.384.key.pem │ │ │ ├── curve_test.521.crt │ │ │ ├── curve_test.521.key.pem │ │ │ ├── ex1.crt │ │ │ ├── ex1.key.b64 │ │ │ ├── intermediate.cnf │ │ │ ├── intermediate.crt │ │ │ ├── intermediate.csr │ │ │ ├── intermediate.key │ │ │ ├── intermediate.srl │ │ │ ├── key.pem │ │ │ ├── leaf.cnf │ │ │ ├── leaf.crt │ │ │ ├── leaf.csr │ │ │ ├── leaf.key │ │ │ ├── leaf.srl │ │ │ ├── leaf2.crt │ │ │ ├── leaf2.csr │ │ │ ├── leaf2.key │ │ │ ├── leaf2.srl │ │ │ ├── public.pem │ │ │ ├── root.crt │ │ │ ├── root.key │ │ │ ├── root.srl │ │ │ ├── server.crt │ │ │ ├── server_boringssl_openssl.crt │ │ │ ├── server_boringssl_openssl.csr │ │ │ ├── server_rustls.crt │ │ │ ├── server_s2n.crt │ │ │ └── v3.ext │ │ └── origin/ │ │ ├── .gitignore │ │ ├── conf/ │ │ │ └── nginx.conf │ │ └── html/ │ │ └── index.html │ ├── mock_origin.rs │ ├── mod.rs │ ├── server_utils.rs │ └── websocket/ │ ├── mod.rs │ ├── ws_echo.rs │ └── ws_echo_raw.rs ├── pingora-runtime/ │ ├── Cargo.toml │ ├── LICENSE │ ├── benches/ │ │ └── hello.rs │ └── src/ │ └── lib.rs ├── pingora-rustls/ │ ├── Cargo.toml │ ├── LICENSE │ └── src/ │ └── lib.rs ├── pingora-s2n/ │ ├── Cargo.toml │ ├── LICENSE │ └── src/ │ └── lib.rs ├── pingora-timeout/ │ ├── Cargo.toml │ ├── LICENSE │ ├── benches/ │ │ └── benchmark.rs │ └── src/ │ ├── fast_timeout.rs │ ├── lib.rs │ └── timer.rs └── tinyufo/ ├── Cargo.toml ├── LICENSE ├── README.md ├── benches/ │ ├── bench_hit_ratio.rs │ ├── bench_memory.rs │ └── bench_perf.rs └── src/ ├── buckets.rs ├── estimation.rs └── lib.rs