All notable changes to this project will be documented in this file.
0.2.0 - 2024-05-10
- Add support for downstream h2 trailers and add an upstream h2 response trailer filter
- Add the ability to set TCP recv buf size
- Add a convenience function to retrieve Session digest
- Add
body_bytes_read()
method to Session - Add
cache_not_modified_filter
- Add
SSLKEYLOG
support for tls upstream - Add
Service<HttpProxy<T>>
constructor for providing name - Add
purge_response
callback - Make
pop_closed
pub, to simplify DIY drains
- Fixed gRPC trailer proxying
- Fixed
response_body_filter
end_of_stream
always being false - Fixed compile error in Rust <= 1.73
- Fixed non linux build
- Fixed the counting problem of used_weight data field in
LruUnit<T>
- Fixed
cargo run --example server
missing cert - Fixed error log string interpolation outside of proper context
- Fixed tinylfu test flake
- API change:
Server::run_forever
now takes ownership and ensures exit semantics - API change:
cleanup()
method ofServerApp
trait is now async - Behavior change: Always return
HttpTask::Body
on body done instead ofHttpTask::done
- Behavior change: HTTP/1 reason phrase is now parsed and proxied
- Updated
h2
dependency for RUSTSEC-2024-0332 - Updated zstd dependencies
- Code optimization and refactor in a few crates
- More examples and docs
0.1.1 - 2024-04-05
Server::new
now acceptsInto<Option<T>>
- Implemented client
HttpSession::get_keepalive_values
for Keep-Alive parsing - Expose
ListenFds
andFds
to fix a voldemort types issue - Expose config options in
ServerConf
, provide newServer
constructor upstream_response_filter
now runs on upstream 304 responses during cache revalidation- Added
server_addr
andclient_addr
APIs toSession
- Allow body modification in
response_body_filter
- Allow configuring grace period and graceful shutdown timeout
- Added TinyUFO sharded skip list storage option
- Fixed build failures with the
boringssl
feature - Fixed compile warnings with nightly Rust
- Fixed an issue where Upgrade request bodies might not be handled correctly
- Fix compilation to only include openssl or boringssl rather than both
- Fix OS read errors so they are reported as
ReadError
rather thanReadTimeout
when reading http/1.1 response headers
- Performance improvements in
pingora-ketama
- Added more TinyUFO benchmarks
- Added tests for
pingora-cache
purge - Limit buffer size for
InvalidHTTPHeader
error logs - Example code: improvements in pingora client, new LB cluster example
- Typo fixes and clarifications across comments and docs
- First Public Release of Pingora 🎉