NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #3111 most downloaded on crates.io
Highly efficient async timer and timeout system for Tokio runtimes.
Last release 28 days ago
09 Sep 2026
Ships fairly regularly
a new release about every 3 months
Nearly every release is documented
notes for 11 of 11 stable releases
Nothing withdrawn
no release was ever pulled
3 years old
11 releases · first in 2024
Reworked connection pooling with sharded storage and a true global LRU, addressing stale entries and race windows.
One column per month.
Bound default HTTP/2 server limits to mitigate memory exhaustion.
🔒 Security
rustls-webpki security advisories.⚙️ Miscellaneous Tasks
cargo check for MSRV verification instead of compiling dev-dependencies during tests.Add support for client certificate verification in mTLS configuration.
🚀 Features
🐛 Bug Fixes
UpgradedBody is now an explicit HttpTask.⚙️ Miscellaneous Tasks
CacheKey::default impl, users of caching should implement cache_key_callback themselvesbytes= prefix, returning 416 Range Not Satisfiable, consistent with RFC 9110 14.1.2.Extensible SslDigest to save user-defined TLS context
connection_filter featureThis release bumps the minimum h2 crate dependency to guard against the MadeYouReset H2 attack
range_{header,body}_filter after disabling cacheInterpretCacheControl members to DurationAdd tweak_new_upstream_tcp_connection hook to invoke logic on new upstream TCP sockets prior to connection
impl<T> UniqueID to use correct return typeMemoryCache methods to accept broader key typescargo update -p backtrace --precise 0.3.74.Add experimental support for windows
Full Changelog: 0.3.0...0.4.0
UDS parsing now requires the path to have unix: prefix. The support for the path without prefix is deprecated and will be removed on the next release.
request_body_filter. Now request body can be inspected and modified.or_err()/or_err_with API to convert Options to pingora::Error.or_fail() API to convert impl std::error::Error to pingora::Error.Connection header it sends to upstream.structopt with clapunix: prefix. The support for the path without prefix is deprecated and will be removed on the next release.Add support for downstream h2 trailers and add an upstream h2 response trailer filter
body_bytes_read() method to Sessioncache_not_modified_filterSSLKEYLOG support for tls upstreamService<HttpProxy<T>> constructor for providing namepurge_response callbackpop_closed pub, to simplify DIY drainsresponse_body_filter end_of_stream always being falseLruUnit<T>cargo run --example server missing certServer::run_forever now takes ownership and ensures exit semanticscleanup() method of ServerApp trait is now asyncHttpTask::Body on body done instead of HttpTask::doneh2 dependency for RUSTSEC-2024-0332Server::new now accepts Into<Option<T>>
Server::new now accepts Into<Option<T>>HttpSession::get_keepalive_values for Keep-Alive parsingListenFds and Fds to fix a voldemort types issueServerConf, provide new Server constructorupstream_response_filter now runs on upstream 304 responses during cache revalidationserver_addr and client_addr APIs to Sessionresponse_body_filterboringssl featureReadError rather than ReadTimeout when reading http/1.1 response headerspingora-ketamapingora-cache purgeInvalidHTTPHeader error logsFirst Public Release of Pingora 🎉
Your coding agent can read these notes before it upgrades. Set up the MCP server →