0.7.0
spider-rs/spider0.7.0Jan 30, 2026by johnhurt
AI Summary
Pingora 0.7.0 release with TLS context extensibility, early TCP connection filtering, and virtual L4 stream abstraction.
Key Highlights
- Extensible SslDigest for user-defined TLS context
- ConnectionFilter trait for early TCP connection filtering
- Virtual L4 stream abstraction
- SSLKEYLOGFILE support for rustls connector
- Exposes HttpProxy struct for external customization
New Features
- ConnectionFilter trait for early TCP filtering
- Virtual L4 stream abstraction
- SSL context customization with SslDigest
- SSLKEYLOGFILE support
- HttpProxy struct exposure for external crates
Full Release Notes
## [0.7.0](https://github.com/cloudflare/pingora/compare/0.6.0...0.7.0) - 2026-01-30 ### Highlights - Extensible SslDigest to save user-defined TLS context - Add ConnectionFilter trait for early TCP connection filtering ### 🚀 Features - Add ConnectionFilter trait for early TCP connection filtering - Introduce a virtual L4 stream abstraction - Add support for verify_cert and verify_hostname using rustls - Exposes the HttpProxy struct to allow external crates to customize the proxy logic. - Exposes a new_mtls method for creating a HttpProxy with a client_cert_key to enable mtls peers. - Add SSLKEYLOGFILE support to rustls connector - Allow spawning background subrequests from main session - Allow Extensions in cache LockCore and user tracing - Add body-bytes tracking across H1/H2 and proxy metrics - Allow setting max_weight on MissFinishType::Appended - Allow adding SslDigestExtensions on downstream and upstream - Add Custom session support for encapsulated HTTP ### 🐛 Bug Fixes - Use write timeout consistently for h2 body writes - Prevent downstream error prior to header from canceling cache fill - Fix debug log and new tests - Fix size calculation for buffer capacity - Fix cache admission on header only misses - Fix duplicate zero-size chunk on cache hit - Fix chunked trailer end parsing - Lock age timeouts cause lock reacquisition - Fix transfer fd compile error for non linux os ### Sec - Removed atty - Upgrade lru to >= 0.16.3 crate version because of RUSTSEC-2026-0002 ### Everything Else - Add tracing to log reason for not caching an asset on cache put - Evict when asset count exceeds optional watermark - Remove trailing comma from Display for HttpPeer - Make ProxyHTTP::upstream_response_body_filter return an optional duration for rate limiting - Restore daemonize STDOUT/STDERR when error log file is not specified - Log task info when upstream header failed to send - Check cache enablement to determine cache fill - Update meta when revalidating before lock release - Add ForceFresh status to cache hit filter - Pass stale status to cache lock - Bump max multipart ranges to 200 - Downgrade Expires header warn to debug log - CI and effective msrv bump to 1.83 - Add default noop custom param to client Session - Use static str in ErrorSource or ErrorType as_str - Use bstr for formatting byte strings - Tweak the implementation of and documentation of `connection_filter` feature - Set h1.1 when proxying cacheable responses - Add or remove accept-ranges on range header filter - Update msrv in github ci, fixup .bleep - Override request keepalive on process shutdown - Add shutdown flag to proxy session - Add ResponseHeader in pingora_http crate's prelude - Add a configurable upgrade for pingora-ketama that reduces runtime cpu and memory - Add to cache api spans - Increase visibility of multirange items - Use seek_multipart on body readers - Log read error when reading trailers end - Re-add the warning about cache-api volatility - Default to close on downstream response before body finish - Ensure idle_timeout is polled even if idle_timeout is unset so notify events are registered for h2 idle pool, filter out closed connections when retrieving from h2 in use pool. - Add simple read test for invalid extra char in header end - Allow customizing lock status on Custom NoCacheReasons - Close h1 conn by default if req header unfinished - Add configurable retries for upgrade sock connect/accept - Deflake test by increasing write size - Make the version restrictions on rmp and rmp-serde more strict to prevent forcing consumers to use 2024 edition - Rewind preread bytes when parsing next H1 response - Add epoch and epoch_override to CacheMeta