v0.5.4
Pre-release
Pre-release
Container Image: https://github.com/orgs/praxis-proxy/packages/container/praxis?tag=0.5.4
Features
- Performance: broad hot-path optimization pass across the proxy, cutting per-request allocations and lock round-trips in the filter pipeline, core, protocol, and TLS. Highlights include allocation-free weighted-random and position-indexed load-balancer selection, bounded Maglev/consistent-hash probing, streaming JSON-RPC policy parsing without a body DOM, incremental SNI peek parsing, and leaner reload/watcher paths by @shaneutt
- Build features: make hot-reload and the admin API optional at build time, with documented cargo features and a guarded lean build by @shaneutt
- Advanced retry policies: configurable retry policy support by @abdallahsamabd in #941
- Streaming: resume IRR iterations within streaming responses by @leseb in #988
- TCP metrics: add the
praxis_tcp_connection_duration_secondshistogram by @tsisodia10 in #1036 - TCP metrics: add the
praxis_tcp_connections_totalcounter by @tsisodia10 in #1037
Bug Fixes
- Security: scrub injected credentials from upstream responses by @shaneutt
- Server: wire the subrequest circuit breaker into the config-validate path by @shaneutt
- Filter: bound json_rpc envelope nesting to match the DOM parser by @shaneutt
- Filter: validate branch cluster alignment by runtime reachability by @shaneutt
- IRR: trigger hot reload for step-pipeline documents, and log the original error when a streaming response filter fails by @shaneutt
- Reload: treat serialization failure as a config change by @shaneutt
Refactoring
- Protocol: move the WebSocket upgrade check into one function (#828) by @ssukanmi in #1001
- Headers: share one RFC 9110 hop-by-hop list across crates by @shaneutt
- Logging: remove log file rotation by @shaneutt
CI & Testing
- Run unit, integration, and conformance as single all-feature suites, each as its own CI job by @shaneutt
- Run unit tests once with all features; drop the per-feature matrices by @shaneutt
- Publish a nightly container image to GHCR by @shaneutt
- Harden the release tag test skip-check by @shaneutt
- Extensive test hardening: readiness polling instead of fixed sleeps, deflaked streaming assertions, and broader coverage by @shaneutt
Documentation
- Document cargo build features and cross-link the guide from the TLS and observability docs by @shaneutt
- Correct the logging file-writer docs; Praxis does not rotate logs by @shaneutt
- Document streaming sub-request responses for IRR by @shaneutt
Dependencies
- OCI: openssl not needed for the build (yet) by @alexsnaps in #1013
- Bump CI actions (conventions setup-rust-lint, coverage-check, supply-chain-audit, ghcr-publish; github/codeql-action; dtolnay/rust-toolchain) and claude-code-action by @dependabot[bot] in #1006, #1007, #1008, #1009, #1010, #1046, #1047, #1048, #1049
- Multiple
cargo upgraderounds by @shaneutt
New Contributors
Full Changelog: v0.5.3...v0.5.4