|
2 | 2 |
|
3 | 3 | All notable changes to this project will be documented in this file. |
4 | 4 |
|
| 5 | +## [0.8.0](https://github.com/cloudflare/pingora/compare/0.7.0...0.8.0) - 2026-03-02 |
| 6 | + |
| 7 | + |
| 8 | +**🚀 Features** |
| 9 | + |
| 10 | +* Add support for client certificate verification in mTLS configuration. |
| 11 | +* Add upstream\_write\_pending\_time to Session for upload diagnostics. |
| 12 | +* Pipe subrequests utility: creates a state machine to treat subrequests as a "pipe," enabling direct sending of request body and writing of response tasks, with a handler for error propagation and support for reusing a preset or captured input body for chained subrequests. |
| 13 | +* Add the ability to limit the number of times a downstream connection can be reused |
| 14 | +* Add a system for specifying and using service-level dependencies |
| 15 | +* Add a builder for pingora proxy service, e.g. to specify ServerOptions. |
| 16 | + |
| 17 | +**🐛 Bug Fixes** |
| 18 | + |
| 19 | +* Fix various Windows compiler issues. |
| 20 | +* Handle custom ALPNs in s2n impl of ALPN::to\_wire\_protocols() to fix s2n compile issues. |
| 21 | +* Fix: don't use “all” permissions for socket. |
| 22 | +* Fix a bug with the ketama load balancing where configurations were not persisted after updates. |
| 23 | +* Ensure http1 downstream session is not reused on more body bytes than expected. |
| 24 | +* Send RST\_STREAM CANCEL on application read timeouts for h2 client. |
| 25 | +* Start close-delimited body mode after 101 is received for WebSocket upgrades. `UpgradedBody` is now an explicit HttpTask. |
| 26 | +* Avoid close delimit mode on http/1.0 req. |
| 27 | +* Reject invalid content-length http/1 requests to eliminate ambiguous request framing. |
| 28 | +* Validate invalid content-length on http/1 resp by default, and removes content-length from the response if transfer-encoding is present, per RFC. |
| 29 | +* Correct the custom protocol code for shutdown: changed the numeric code passed on shutdown to 0 to indicate an explicit shutdown rather than a transport error. |
| 30 | + |
| 31 | +**⚙️ Miscellaneous Tasks** |
| 32 | + |
| 33 | +* Remove `CacheKey::default` impl, users of caching should implement `cache_key_callback` themselves |
| 34 | +* Allow server bootstrapping to take place in the context of services with dependents and dependencies |
| 35 | +* Don't consider "bytes=" a valid range header: added an early check for an empty/whitespace-only range-set after the `bytes=` prefix, returning 416 Range Not Satisfiable, consistent with RFC 9110 14.1.2. |
| 36 | +* Strip {content, transfer}-encoding from 416s to mirror the behavior for 304 Not Modified responses. |
| 37 | +* Disable CONNECT method proxying by default, with an option to enable via server options; unsupported requests will now be automatically rejected. |
| 38 | + |
5 | 39 | ## [0.7.0](https://github.com/cloudflare/pingora/compare/0.6.0...0.7.0) - 2026-01-30 |
6 | 40 |
|
7 | 41 | ### Highlights |
|
0 commit comments