hyper-util
hyper utilities
0.1.20
431M downloads/mo
#267 most downloaded on crates.io
hyperium/hyper-util
What this package is like to depend on
Last release 6 months ago
02 Feb 2026
Release timing varies
gaps range from 2 weeks to 5 months
Nearly every release is documented
notes for 21 of 22 stable releases
Nothing withdrawn
no release was ever pulled
5 years old
22 releases · first in 2022
4 releases in the last 12 months
see the full history below
Release timeline
22 releases · Jan 2022 to Feb 2026Releases
latest 22-
0.1.2002 Feb 2026Release notes
Open source →What's Changed
- fix(matcher): improve domain matching case insensitivity by @chen-hongzhi in #251
- fix(matcher): improve subdomain matching case insensitivity by @0x676e67 in #252
- fix(docs): correct malformed reference link in set_interface by @magurotuna in #254
- chore(ci): update to actions/checkout@v6 by @tottoto in #261
- chore: remove unused mac imports by @bts in #260
- bump MSRV to 1.64 by @seanmonstar in #258
- chore: bump
system-configurationto 0.7 by @BugenZhao in #256 - chore: use standard library api by @tottoto in #263
New Contributors
- @chen-hongzhi made their first contribution in #251
- @bts made their first contribution in #260
- @BugenZhao made their first contribution in #256
Full Changelog: v0.1.19...v0.1.20
Release notes
Open source →- Fix
proxy::Matcherto properly match domains regardless of casing - Fix system proxy matcher dependency on macOS when used in sandboxed environements.
- Increased MSRV to 1.64.
-
0.1.1903 Dec 2025Release notes
Open source →See the related blog post.
Highlights
- Add
client::poolmodule for composable pools. Enable with theclient-poolfeature. - Add
pool::singletonfor sharing a single cloneable connection. - Add
pool::cachefor caching a list of connections. - Add
pool::negotiatefor combining two pools with upgrade and fallback negotiation. - Add
pool::mapfor customizable mapping of keys and connections.
What's Changed
- chore(ci): check docs links with full features by @seanmonstar in #245
- minor SOCKS proxying docs fixes by @JPDye in #246
- feat(pool): add a Singleton pool type by @seanmonstar in #226
- feat(pool): add a Cache pooling service by @seanmonstar in #227
- feat(pool): add a Negotiate pooling service by @seanmonstar in #228
- feat(pool): add a Map pool service type by @seanmonstar in #247
- docs(pool): add module level docs for pools by @seanmonstar in #248
- v0.1.19 by @seanmonstar in #249
Full Changelog: v0.1.18...v0.1.19
Release notes
Open source →- Add
client::poolmodule for composable pools. Enable with theclient-poolfeature. - Add
pool::singletonfor sharing a single cloneable connection. - Add
pool::cachefor caching a list of connections. - Add
pool::negotiatefor combining two pools with upgrade and fallback negotiation. - Add
pool::mapfor customizable mapping of keys and connections.
- Add
-
0.1.1813 Nov 2025Release notes
Open source →Highlights
- Fix
rt::TokioTimerto support Tokio's paused time. - Fix
client::proxy::match::Matcherto parse auth without passwords.
What's Changed
- chore(ci): add a github actions workflow to preview rustdocs of a PR by @seanmonstar in #229
- chore(ci): fix rustdoc preview job by @seanmonstar in #231
- chore(ci): fix rustdoc preview workflow typo by @seanmonstar in #232
- docs: replace auto_doc_cfg by @seanmonstar in #237
- perf(client): avoid redundant memory copies of Host header by @0x676e67 in #235
- chore: bump windows-registry to 0.6 by @Vaiz in #236
- fix: fix msrv on windows and macos target by @tottoto in #239
- chore(ci): update to actions/checkout@v5 by @tottoto in #240
- fix: allow proxy env URIs without password by @karanabe in #241
- fix: support fake time by @arielb1 in #238
New Contributors
- @Vaiz made their first contribution in #236
- @karanabe made their first contribution in #241
- @arielb1 made their first contribution in #238
Thanks
Full Changelog: v0.1.17...v0.1.18
Release notes
Open source →- Fix
rt::TokioTimerto support Tokio's paused time. - Fix
client::proxy::match::Matcherto parse auth without passwords.
- Fix
-
0.1.1715 Sep 2025Release notes
Open source →Highlights
- Fix
legacy::Clientto allow absolute-form URIs whenConnected::proxy(true)is passed and the scheme ishttps.
What's Changed
- chore(test): remove some miri exception config by @tottoto in #222
- refactor(connect): safely convert
socket2::Socketto TokioTcpSocketby @0x676e67 in #223 - refactor: set correct cfg on common::{Exec, Lazy, SyncWrapper} by @seanmonstar in #224
- fix(client): allow absolute-form if is_proxied is set even on HTTPS by @seanmonstar in #225
Full Changelog: v0.1.16...v0.1.17
Release notes
Open source →- Fix
legacy::Clientto allow absolute-form URIs whenConnected::proxy(true)is passed and the scheme ishttps.
- Fix
-
0.1.1622 Jul 2025Release notes
Open source →Highlights
- Add
impl Cloneforproxy::Tunnelservice. - Fix
proxy::Matcherto detect SOCKS4 schemes. - Fix
legacy::Clientpool idle checker to trigger less aggresively, saving CPU.
What's Changed
- feat(client): implement Clone for Tunnel by @tottoto in #212
- fix(client): don't spawn pool idle interval if timeout is 0 by @seanmonstar in #215
- refactor(client): simplify pool idle task with async/await by @seanmonstar in #216
- feat: allow socket2 0.6 by @tottoto in #213
- fix(client): cap pool idle interval to a minimum by @seanmonstar in #217
- tests(client): fix flaky pool test by @seanmonstar in #220
- fix(proxy): Fix SOCKS4 proxy protocol parsing and matching by @0x676e67 in #219
- Move tokio/net feature to client to make TokioIo can used in wasm by @tiannian in #218
- Prepare v0.1.16 by @seanmonstar in #221
New Contributors
Full Changelog: v0.1.15...v0.1.16
Release notes
Open source →- Add
impl Cloneforproxy::Tunnelservice. - Fix
proxy::Matcherto detect SOCKS4 schemes. - Fix
legacy::Clientpool idle checker to trigger less aggresively, saving CPU.
- Add
-
0.1.1507 Jul 2025Release notes
Open source →tl;dr
- Add header casing options to
auto::Builder. - Fix
proxy::Socksv5to check for enough bytes before parsing ipv6 responses. - Fix including
client-proxyin thefullfeature set.
What's Changed
- ci: pin tracing-core in msrv job by @seanmonstar in #203
- Cleanup deadcode in
clientby @howardjohn in #202 - refactor(socks): deduplicate and reuse shared logic by @0x676e67 in #205
- refactor: include client-proxy in full feature by @seanmonstar in #206
- refactor(client): remove old body delay_eof code by @seanmonstar in #208
- feat(builder): support header case methods by @AndreyErmilov in #207
- fix(socks): check for right length before parsing ProxyRes by @seanmonstar in #210
- Prepare v0.1.15 by @seanmonstar in #211
New Contributors
- @AndreyErmilov made their first contribution in #207
Full Changelog: v0.1.14...v0.1.15
Release notes
Open source →- Add header casing options to
auto::Builder. - Fix
proxy::Socksv5to check for enough bytes before parsing ipv6 responses. - Fix including
client-proxyin thefullfeature set.
- Add header casing options to
-
0.1.1404 Jun 2025Release notes
Open source →tl;dr
- Fix
HttpConnectorto defer address family order to resolver sort order. - Fix
proxy::Matcherto find HTTPS system proxies on Windows.
What's Changed
- Update to
windows-registry0.5 by @kennykerr in #198 - style(client): Fix some clippy lints by @0x676e67 in #199
- fix(client): prefer resolver order always by @seanmonstar in #200
- fix(proxy): set https system proxy on windows by @seanmonstar in #201
New Contributors
- @kennykerr made their first contribution in #198
Full Changelog: v0.1.13...v0.1.14
Release notes
Open source →- Fix
HttpConnectorto defer address family order to resolver sort order. - Fix
proxy::Matcherto find HTTPS system proxies on Windows.
- Fix
-
0.1.1327 May 2025Release notes
Open source →tl;dr
- Fix
HttpConnectorto always prefer IPv6 addresses first, if happy eyeballs is enabled. - Fix
legacy::Clientto return better errors if available on the connection.
What's Changed
- fix(client): prefer IPv6 addresses before IPv4 even if resolver ordered differently by @seanmonstar in #194
- chore(test): make proxy test robust wrt IPv4/v6 by @Fabian-Gruenbichler in #195
- refactor: limit dependency futures-util to tests and client-legacy by @hanna-kruppe in #192
- Fix some clippy lints by @jplatte in #196
- ConnectErrors improvements by @seanmonstar in #197
- fix(client): race in connection errors propagation by @dare3path in #184
New Contributors
- @Fabian-Gruenbichler made their first contribution in #195
- @hanna-kruppe made their first contribution in #192
- @jplatte made their first contribution in #196
- @dare3path made their first contribution in #184
Full Changelog: v0.1.12...v0.1.13
Release notes
Open source →- Fix
HttpConnectorto always prefer IPv6 addresses first, if happy eyeballs is enabled. - Fix
legacy::Clientto return better errors if available on the connection.
- Fix
-
0.1.1219 May 2025Release notes
Open source →tl;dr
- Add
client::legacy::proxy::Tunnelconnector that wraps another connector with HTTP tunneling. - Add
client::legacy::proxy::{SocksV4, SocksV5}connectors that wraps another connector with SOCKS. - Add
client::proxy::matcher::Matchertype that can use environment variables to match proxy rules. - Add
server::graceful::Watchertype that can be sent to watch a connection in another task. - Add
GracefulShutdown::count()method to get number of currently watched connections. - Fix missing
must_useattributes onConnectionfutures. - Fix tracing span in GAI resolver that can cause panics.
What's Changed
- fix(server): Enforce
serve_connectionresult usage by @Sol-Ell in #178 - fix(tracing): revert #134 - tracing span removal in legacy DNS
GaiResolverby @arpadav in #179 - docs(service): document service utilities by @cratelyn in #180
- refactor: replace manual implementations of
ReadBufCursormethods by @paolobarbolini in #181 - feat(server): add graceful::Watcher type by @seanmonstar in #182
- feat(server): implement default for server auto connection builder by @tottoto in #183
- feat(client): add
proxy::Tunnellegacy util by @seanmonstar in #140 - docs(client): Include .pool_timer() in the Client builder example by @sulami in #186
- feat(server): add method to get number of watching connection by @tottoto in #185
- Add a proxy Matcher by @seanmonstar in #171
- feat(client): add macOS system proxy support for Matcher by @seanmonstar in #189
- feat(client): add windows system proxies for Matcher by @seanmonstar in #190
- feat(client): add proxy::SocksV4 and proxy::SocksV5 connectors by @JPDye in #187
New Contributors
- @Sol-Ell made their first contribution in #178
- @arpadav made their first contribution in #179
- @paolobarbolini made their first contribution in #181
- @sulami made their first contribution in #186
- @JPDye made their first contribution in #187
Full Changelog: v0.1.11...v0.1.12
Release notes
Open source →- Add
client::legacy::proxy::Tunnelconnector that wraps another connector with HTTP tunneling. - Add
client::legacy::proxy::{SocksV4, SocksV5}connectors that wraps another connector with SOCKS. - Add
client::proxy::matcher::Matchertype that can use environment variables to match proxy rules. - Add
server::graceful::Watchertype that can be sent to watch a connection in another task. - Add
GracefulShutdown::count()method to get number of currently watched connections. - Fix missing
must_useattributes onConnectionfutures. - Fix tracing span in GAI resolver that can cause panics.
- Add
-
0.1.1131 Mar 2025Release notes
Open source →What's Changed
- fix(client): Fix
HTTP/2websocket request by @0x676e67 in #165 - builder: expose methods for determining if HTTP/1.1 or HTTP/2 support are enabled by @tobz in #164
- feat(server): support
auto_date_header,max_local_error_reset_streams, andignore_invalid_headers. by @finnbear in #161 - fix(tracing): propagate span context by @alpeb in #166
- feat(rt/tokio): additive tokio and hyper i/o adaptors by @cratelyn in #170
- feat(client): implement Connection for UnixStream and NamedPipeClient by @seanmonstar in #177
- enable
HttpConnector::interfaceon macOS and Solarish systems by @hawkw in #176
New Contributors
- @jlizen made their first contribution in #159
- @linyihai made their first contribution in #160
- @tobz made their first contribution in #164
- @finnbear made their first contribution in #161
- @alpeb made their first contribution in #166
- @cratelyn made their first contribution in #168
- @hawkw made their first contribution in #176
Thanks
Release notes
Open source →- Add
tracingcrate feature with support inTokioExecutor. - Add
HttpConnector::interface()support for macOS and Solarish systems. - Add
rt::WithHyperIoandrt::WithTokioIocombinators. - Add
auto_date_header()for auto server builder. - Add
max_local_error_reset_streams()for auto server builder. - Add
ignore_invalid_headers()for auto server builder. - Add methods to determine if auto server is configured for HTTP/1 or HTTP/2.
- Implement
ConnectionforUnixStreamandNamedPipeClient. - Fix HTTP/2 websocket requests sent through
legacy::Client.
- fix(client): Fix
-
0.1.1028 Oct 2024Release notes
Open source →- Add
http2_max_header_list_size(num)option to legacy client builder. - Add
set_tcp_user_timeout(dur)option to legacyHttpConnector.
- Add
-
0.1.924 Sep 2024Release notes
Open source →- Add support for
client::legacyDNS resolvers to set non-zero ports on returned addresses. - Fix
client::legacywrongly retrying pooled connections that were created successfully but failed immediately after, resulting in a retry loop.
- Add support for
-
0.1.809 Sep 2024Release notes
Open source →- Add
server::conn::auto::upgrade::downcast()for use with auto connection upgrades.
- Add
-
0.1.706 Aug 2024Release notes
Open source →- Add
Connected::poison()tolegacyclient, a port from hyper v0.14.x. - Add
Error::connect_info()tolegacyclient, a port from hyper v0.14.x.
- Add
-
0.1.601 Jul 2024Release notes
Open source →- Add support for AIX operating system to
legacyclient. - Fix
legacyclient to better use dying pooled connections.
- Add support for AIX operating system to
-
0.1.528 May 2024Release notes
Open source →- Add
server::graceful::GracefulShutdownhelper to coordinate over many connections. - Add
server::conn::auto::Connection::into_owned()to unlink lifetime fromBuilder. - Allow
servicemodule to be available with onlyservicefeature enabled.
- Add
-
0.1.424 May 2024Release notes
Open source →- Add
initial_max_send_streams()tolegacyclient builder - Add
max_pending_accept_reset_streams()tolegacyclient builder - Add
max_headers(usize)toautoserver builder - Add
http1_onl()andhttp2_only()toautoserver builder - Add connection capturing API to
legacyclient - Add
impl Connection for TokioIo - Fix graceful shutdown hanging on reading the HTTP version
- Add
-
0.1.331 Jan 2024Release notes
Open source →Added
- Add
Error::is_connect()which returns true if error came from clientConnect. - Add timer support to
legacypool. - Add support to enable http1/http2 parts of
auto::Builderindividually.
Fixed
- Fix
autoconnection so it can handle requests shorter than the h2 preface. - Fix
legacy::Clientto no longer error when keep-alive is diabled.
- Add
-
0.1.220 Dec 2023Release notes
Open source →Added
- Add
graceful_shutdown()method toautoconnections. - Add
rt::TokioTimertype that implementshyper::rt::Timer. - Add
service::TowerToHyperServiceadapter, allowing usingtower::Services as ahyper::service::Service. - Implement
Cloneforauto::Builder. - Exports
legacy::{Builder, ResponseFuture}.
Fixed
- Enable HTTP/1 upgrades on the
legacy::Client. - Prevent divide by zero if DNS returns 0 addresses.
- Add
-
0.1.117 Nov 2023Release notes
Open source →Added
- Make
server-autoenable theserverfeature.
Fixed
- Reduce
Sendbounds requirements forautoconnections. - Docs: enable all features when generating.
- Make
-
0.1.016 Nov 2023 -
0.0.015 Jan 2022Nothing published for this version