Summary
This version introduces several reliability and compatibility improvements to the proxy, focused on HTTPS support, config robustness, and downstream interoperability.
Key Changes
-
HTTPS support without OpenSSL
Migrated the HTTP client to use a Rust-native TLS backend (hyper-rustls
or equivalent), removing the dependency on OpenSSL. This greatly improves build portability, especially for Alpine and musl-based containers, and eliminates the need for system OpenSSL libraries. -
Robust config:
path_rules
is now optional
Fixed a bug where omitting thepath_rules
section inconfig.yaml
caused a panic or crash at startup. The config loader now defaults to an empty list if not specified, using only the default latency threshold when no rules are present. -
Header filtering for downstream compatibility
Requests forwarded by the proxy now exclude certain headers such asaccept-encoding
. This avoids issues with downstream servers that may not support compressed response streams (such as "Empty reply from server" errors), ensuring better compatibility with a broader range of HTTP backends.
Additional Improvements
- Enhanced tracing and error reporting for debugging and operations.