New
Pingora 0.5.0
0.5.0 - 2025-05-09
π Features
- Add tweak_new_upstream_tcp_connection hook to invoke logic on new upstream TCP sockets prior to connection
- Add ability to configure max retries for upstream proxy failures
- Allow tcp user timeout to be configurable
- Add peer address to downstream handshake error logs
- Allow proxy to set stream level downstream read timeout
- Improve support for sending custom response headers and bodies for error messages
- Allow configuring multiple listener tasks per endpoint
- Add get_stale and get_stale_while_update for memory-cache
π Bug Fixes
- Fix deadloop if proxy_handle_upstream exits earlier than proxy_handle_downstream
- Check on h2 stream end if error occurred for forwarding HTTP tasks
- Check for content-length underflow on end of stream h2 header
- Correctly send empty h2 data frames prior to capacity polling
- Signal that the response is done when body write finishes to avoid h1 downstream/h2 upstream errors
- Ignore h2 pipe error when finishing an H2 upstream
Everything Else
- Add builder api for pingora listeners
- Better handling for h1 requests that contain both transfer-encoding and content-length
- Allow setting raw path in request to support non-UTF8 use cases
- Allow reusing session on errors prior to proxy upstream
- Avoid allocating large buffer in the accept() loop
- Ensure HTTP/1.1 when forcing chunked encoding
- Reject if the HTTP header contains duplicated Content-Length values