hyper
A protective and efficient HTTP library for all.
1.11.0
858M downloads/mo
#67 most downloaded on crates.io
hyperium/hyper
What this package is like to depend on
Last release 1 months ago
20 Jul 2026
Release timing varies
gaps range from 4 weeks to 7 months
Most releases are documented
notes for 171 of 240 stable releases
3 versions withdrawn
withdrawn after publishing
12 years old
251 releases · first in 2014
6 releases in the last 12 months
see the full history below
Release timeline
251 releases · Nov 2014 to Jul 2026Releases
latest 60 of 251-
1.11.020 Jul 2026Release notes
Open source →Features
Bug Fixes
- http1:
- discard content-length header when received before transfer-encoding (#4124) (540fff91, closes #4123)
- use append for repeat trailer values in encoder (#4118) (de1483d7)
- allow up to max_headers trailers (#4108) (f584091a)
- use append for repeat trailers (#4107) (876effe1)
- flush buffered data before shutdown (#4018) (72046cc7, closes #4022)
- more strictly enforce max_buf_size when parsing (#4093) (90ede307, closes #4081)
- http2: avoid buffering
Upgradedwrites without send capacity (#4102) (aecf5abf)
All PRs
- removing
cast_losslesslint by @josetorrs in #4087 - Fix the borrow_as_ptr lint by @xd009642 in #4082
- removing
empty_structs_with_bracketslint by @josetorrs in #4088 - style(proto): removing
explicit_iter_looplint by @josetorrs in #4089 - Fix the ptr_as_ptr lint by @nakaryo716 in #4091
- style(lib): remove
manual_assert_eqlint by @josetorrs in #4090 - style(http2): allow an instance of large_enum_variant, deny otherwise by @seanmonstar in #4092
- Removing 'undocumented_unsafe_blocks' lint allowance by @Lori-Shu in #4083
- style(http2): use an enum instead of bool in strip_connection_headers() by @seanmonstar in #4094
- fix(http1): more strictly enforce max_buf_size when parsing by @seanmonstar in #4093
- h1 servers can shutdown connections with pending buffered data on filled sockets by @deven96 in #4018
- refactor(http1): remove ref_option lint by @nakaryo716 in #4101
- style(lib): remove
unnecessary_semicolonlint by @josetorrs in #4103 - style(lib): remove
uninlined_format_argslint by @josetorrs in #4104 - style(lib): remove
semicolon_if_nothing_returnedlint by @MonkieeBoi in #4106 - style(lib): remove
single_match_elselint by @yunz-dev in #4105 - style(lib): remove
default_trait_accesslint by @nakaryo716 in #4111 - fix(http1): use append for repeat trailers by @seanmonstar in #4107
- fix(http1): allow up to max_headers trailers by @seanmonstar in #4108
- fix(http2): avoid buffering
Upgradedwrites without send capacity by @seanmonstar in #4102 - style(headers): small refactor to remove
question_marklint by @josetorrs in #4116 - fix(h1): append duplicate trailer values when encoding (match #4107) by @greymoth-jp in #4118
- style(proto): fix
decimal_literal_representationlint by @josetorrs in #4117 - docs(governance): define Advisor role by @seanmonstar in #4098
- docs(maintainers): move some collaborators to emeriti by @seanmonstar in #4125
- feat: add initialized_unfilled to ReadBufCursor by @abh1nav10 in #4115
- fix(http1): discard content-length header when received before transfer-encoding by @seanmonstar in #4124
New Contributors
- @josetorrs made their first contribution in #4087
- @nakaryo716 made their first contribution in #4091
- @deven96 made their first contribution in #4018
- @MonkieeBoi made their first contribution in #4106
- @yunz-dev made their first contribution in #4105
- @greymoth-jp made their first contribution in #4118
- @abh1nav10 made their first contribution in #4115
- http1:
-
1.10.129 May 2026Release notes
Open source →What's Changed
- fix(http1): fix busy loop when peer half-closes and open body by @seanmonstar in #4086
Full Changelog: v1.10.0...v1.10.1
Release notes
Open source →Bug Fixes
v1.10.0 (2026-05-27)
Bug Fixes
- http1:
- http2:
Features
- http2:
v1.9.0 (2026-03-31)
Bug Fixes
- ffi: validate null pointers before dereferencing in request/response functions (#4038 (28e73ccd)
- http1:
- http2:
Features
-
1.10.027 May 2026Release notes
Open source →Features
- http2:
Bug Fixes
- http1:
- http2:
Refactors, chores, et al
- fix(http1): fix rare missed write wakeup on connections v2 by @lthiery in #3988
- fix(client): reading trailers shouldn't propagate
NO_ERRORfrom early response by @ulyssa in #3998 - fix(http1): fix reading large bodies on 32-bit systems by @seanmonstar in #4056
- fix(http2): do not reserve capacity before body data is available by @seanmonstar in #4061
- Fix two clippy lints by @jplatte in #4063
- docs(client): document Drop behavior for Connection types by @lihan3238 in #4064
- Add
header_table_sizemethod to server builder by @ArniDagur in #4062 - feat(http2/client): expose reset_stream_duration option by @kimjune01 in #4068
- fix(http1): send error when dispatcher is dropped mid-body by @seanmonstar in #4069
- docs: document cancel safety for client send_request futures by @lihan3238 in #4070
- docs(error): add detailed doc comments to Error query methods by @kimjune01 in #4065
- refactor(lib): use a panic_if_poisoned() helper for mutexes by @seanmonstar in #4072
- refactor(lib): replace unwraps with expects by @seanmonstar in #4073
- docs(lib): fixup markdown and grammar in doc comments by @seanmonstar in #4074
- chore(ci): fix security-audit job by @seanmonstar in #4076
- chore(lib): start a strict clippy config by @seanmonstar in #4075
- tests(client): fix misuse of path_and_query in CONNECT test by @seanmonstar in #4078
- Removing wildcard_imports lint allowance by @Lori-Shu in #4080
- Fix manual_assert lint by @xd009642 in #4079
New Contributors
- @ulyssa made their first contribution in #3998
- @lihan3238 made their first contribution in #4064
- @ArniDagur made their first contribution in #4062
- @kimjune01 made their first contribution in #4068
- @Lori-Shu made their first contribution in #4080
- @xd009642 made their first contribution in #4079
Full Changelog: v1.9.0...v1.10.0
-
1.9.031 Mar 2026Release notes
Open source →Features
- client:
- error: add 'Error::is_parse_version_h2' method (393c77c7)
- http1: add UpgradeableConnection::into_parts (e21205cf)
Bug Fixes
- ffi: validate null pointers before dereferencing in request/response functions (#4038 (28e73ccd)
- http1:
- http2:
Refactors and chores
- docs(error): add more information about is_incomplete_message by @seanmonstar in #3978
- Run cargo-audit in CI to check for known vulnerabilities in dependencies. by @f0rki in #3246
- refactor(http1): simplify match of Token parse error by @seanmonstar in #3981
- refactor(http1): use saturating_sub instead of manual impl by @seanmonstar in #3983
- refactor(http1): replace many args of Chunked::step with struct by @seanmonstar in #3982
- docs: fix comment in
put_slice()by @coryan in #3986 - test(lib): fix unused warnings due to feature gating test imports by @seanmonstar in #3997
- docs: improve Read trait and ReadBufCursor documentation by @majiayu000 in #4000
- fix: use h1 parser config when parsing server req by @0xPoe in #4002
- test(server): fix flaky disable_keep_alive_mid_request by @seanmonstar in #4009
- chore(ci): update to actions/checkout@v6 by @tottoto in #4005
- chore(ci): update to cargo-check-external-types 0.4.0 by @tottoto in #4006
- update copyright year to 2026 by @jasmyhigh in #4007
- refactor: avoid unwrap examples by @0xPoe in #4001
- fix(http1): use case-insensitive matching for trailer fields by @HueCodes in #4011
- chore: convert bug report template to GitHub form by @njg7194 in #4015
- chore(ci): force toml mode in yq selecting msrv by @seanmonstar in #4020
- fix: non-utf8 char may cause panic when calling to_str by @cuiweixie in #4019
- feat(http2/client): add
max_local_error_reset_streamsoption by @ffuugoo in #4021 - chore: drop pin-utils dependency by @tottoto in #4023
- [minor] doc: Fix HTTP/2 max concurrent stream link by @dentiny in #4037
- fix(ffi): validate null pointers before dereferencing in request/resp… by @DhruvaD1 in #4038
- h2: expose current max stream count by @howardjohn in #4026
- fix(http1): allow keep-alive for chunked requests with trailers by @wi-adam in #4043
- fix(http2): cancel pipe_task and send RST_STREAM on response future drop by @mmishra100 in #4042
- Add APIs to allow switching an HTTP1 connection to HTTP2 if H2 preface is seen by @pborzenkov in #3996
New Contributors
- @f0rki made their first contribution in #3246
- @coryan made their first contribution in #3986
- @majiayu000 made their first contribution in #4000
- @0xPoe made their first contribution in #4002
- @jasmyhigh made their first contribution in #4007
- @HueCodes made their first contribution in #4011
- @njg7194 made their first contribution in #4015
- @cuiweixie made their first contribution in #4019
- @ffuugoo made their first contribution in #4021
- @dentiny made their first contribution in #4037
- @DhruvaD1 made their first contribution in #4038
- @wi-adam made their first contribution in #4043
- @mmishra100 made their first contribution in #4042
- @pborzenkov made their first contribution in #3996
-
1.8.113 Nov 2025Release notes
Open source →Bug Fixes
- http1: fix consuming extra CPU from previous change (#3977) (4492f31e)
v1.8.0 (2025-11-11)
Bug Fixes
- http1: fix rare missed write wakeup on connections (#3952) (2377b893)
- http2: fix internals of HTTP/2 CONNECT upgrades (#3967) (58e0e7dc, closes #3966)
Features
- rt: add
Timer::now()method to allow overriding the instant returned (#3965) (5509ebe6)
Breaking Changes
-
The HTTP/2 client connection no longer allows an executor that can not spawn itself.
This was an oversight originally. The client connection will now include spawning a future that keeps a copy of the executor to spawn other futures. Thus, if it is
!Send, it needs to spawn!Sendfutures. The likelihood of executors that match the previously allowed behavior should be very remote.There is also technically a semver break in here, which is that the
Http2ClientConnExectrait no longer dyn-compatible, because it now expects to beClone. This should not break usage of theconnbuilder, because it already separately hadE: Clonebounds. If someone were usingdyn Http2ClientConnExec, that will break. However, there is no purpose for doing so, and it is not usable otherwise, since the trait only exists to propagate bounds into hyper. Thus, the breakage should not affect anyone. (58e0e7dc)
v1.7.0 (2025-08-18)
Bug Fixes
- server: improve caching accuracy of Date header (#3887) (436cadd1)
Features
- client:
- error: add
Error::is_shutdown()(#3863) (b8affd8a, closes #2745) - server: add
allow_multiple_spaces_in_request_line_delimitershttp1 builder method (#3929) (9749184f)
v1.6.0 (2025-01-28)
Bug Fixes
- server:
Features
- ext: add
ext::on_informational()callback extension (#3818) (8ce1fcfa, closes #2565) - server: add
http1::Builder::ignore_invalid_headers(bool)option (#3824) (3817a79b)
Breaking Changes
http2::Builder::max_local_error_reset_streams()now takes&mut selfand returns&mut Self. In practice, this shouldn't break almost anyone. It was the wrong receiver and return types. (e981a91e)
-
1.8.011 Nov 2025Release notes
Open source →Highlights
Features
Bug Fixes
- http1: fix rare missed write wakeup on connections (#3952) (2377b893)
- http2: fix internals of HTTP/2 CONNECT upgrades (#3967) (58e0e7dc, closes #3966)
Breaking Changes
While technically breaking, it's assumed you will not need to do anything or be affected.
-
The HTTP/2 client connection no longer allows an executor
that can not spawn itself.This was an oversight originally. The client connection will now include spawning
a future that keeps a copy of the executor to spawn other futures. Thus, if it is
!Send, it needs to spawn!Sendfutures. The likelihood of executors that match
the previously allowed behavior should be very remote.There is also technically a semver break in here, which is that the
Http2ClientConnExectrait no longer dyn-compatible, because it now expects to
beClone. This should not break usage of theconnbuilder, because it already
separately hadE: Clonebounds. If someone were usingdyn Http2ClientConnExec,
that will break. However, there is no purpose for doing so, and it is not usable
otherwise, since the trait only exists to propagate bounds into hyper. Thus, the
breakage should not affect anyone.
(58e0e7dc)
What's Changed
- chore(ci): update to actions/checkout@v5 by @tottoto in #3935
- refactor(ffi): specify "C" ABI explicitly in ffi_fn! macro by @1911860538 in #3937
- Update documented default values for
http1::Builderby @Will-Low in #3938 - fix(client): port tests to in-memory socket by @cratelyn in #3947
- feat: allow overriding the instant returned from Timer by @arielb1 in #3965
- fix(http1): poll_loop writes when ready by @lthiery in #3952
- test(ready_stream): replace tracing with printlns by @seanmonstar in #3973
- fix(http2): fix internals of HTTP/2 CONNECT upgrades by @seanmonstar in #3967
- Release v1.8.0 by @seanmonstar in #3974
New Contributors
-
1.7.018 Aug 2025Release notes
Open source →Highlights
Features
- client:
- error: add
Error::is_shutdown()(#3863) (b8affd8a, closes #2745) - server: add
allow_multiple_spaces_in_request_line_delimitershttp1 builder method (#3929) (9749184f)
Bug Fixes
What's Changed
- chore: remove redundant backticks by @jimmycathy in #3855
- Gate tests with features they test by @WhyNotHugo in #3864
- docs(service): add
HttpServicedocumentation by @cratelyn in #3869 - docs(examples): alias Builder for clarity by @Muffeter in #3873
- docs(MAINTAINERS): add katelyn martin as collaborator by @seanmonstar in #3878
- chore(proto/h2): fix module-level documentation by @cratelyn in #3881
- feat(client): add a
TrySendError::message()method by @cratelyn in #3884 - feat(client): add a
TrySendError::error()method by @cratelyn in #3885 - fix(http2): add decriptive error for non-zero connect request by @samp5 in #3886
- refactor(lib): drop futures-util except in ffi by @hanna-kruppe in #3890
- fix(date): improve caching accuracy by @Patryk27 in #3887
- docs(SECURITY): update policy to use GSA drafts when reporting vulnerabilities by @seanmonstar in #3894
- feat: add Error::is_shutdown() by @joshka in #3863
- docs: improve ext module overview by @seanmonstar in #3921
- docs(rt): improve rt module overview by @seanmonstar in #3920
- chore(ci): update to cargo-check-external-types-0.3.0 by @tottoto in #3928
- test(common): add missing assertion in full_rewind test by @1911860538 in #3926
- fix(lib): avoid implicit cargo feature by @hanna-kruppe in #3931
- feat(http1): add allow_multiple_spaces_in_request_line_delimiters h1 builder config method by @mccordryan in #3929
- Prepare v1.7.0 by @seanmonstar in #3933
New Contributors
- @jimmycathy made their first contribution in #3855
- @Muffeter made their first contribution in #3873
- @samp5 made their first contribution in #3886
- @hanna-kruppe made their first contribution in #3890
- @Patryk27 made their first contribution in #3887
- @joshka made their first contribution in #3863
- @1911860538 made their first contribution in #3926
- @mccordryan made their first contribution in #3929
Full Changelog: v1.6.0...v1.7.0
-
1.6.028 Jan 2025Release notes
Open source →Features
- ext: add
ext::on_informational()callback extension (#3818) (8ce1fcfa, closes #2565) - server: add
http1::Builder::ignore_invalid_headers(bool)option (#3824) (3817a79b)
Bug Fixes
- server:
Breaking Changes
http2::Builder::max_local_error_reset_streams()now takes&mut selfand returns&mut Self. In practice, this shouldn't break almost anyone. It was the wrong receiver and return types.
(e981a91e)
New Contributors
Thanks
Full Changelog: v1.5.2...v1.6.0
- ext: add
-
1.5.216 Dec 2024Release notes
Open source →Bug Fixes
- http1:
Features
New Contributors
- @23doors made their first contribution in #3795
- @ionionascu made their first contribution in #3799
- @linyihai made their first contribution in #3800
- @suzp1984 made their first contribution in #3807
Thanks
Full Changelog: v1.5.1...v1.5.2
-
1.5.119 Nov 2024Release notes
Open source →Bug Fixes
- http2:
v1.5.0 (2024-10-15)
Bug Fixes
- http1:
- http2: strip content-length header in response to CONNECT requests (#3748) (67a4a498)
Features
-
1.5.015 Oct 2024Nothing published for this version
-
1.4.109 Jul 2024Release notes
Open source →Bug Fixes
- http1: reject final chunked if missing 0 (8e5de1bb)
v1.4.0 (2024-07-01)
Bug Fixes
- http2: stop removing "Trailer" header in HTTP/2 responses as per RFC 9110 (#3648) (a3269f7a)
- server: start header read timeout immediately (#3185) (0eb1b6cf)
Features
-
1.4.001 Jul 2024Nothing published for this version
-
1.3.116 Apr 2024Release notes
Open source →Bug Fixes
- client: revert auto content-length header for some requests (#3633)
v1.3.0 (2024-04-15)
Bug Fixes
- client: send content-length even with no body (172fdfaf)
- http2:
- server:
Features
- client:
- ext: implement From ReasonPhrase for Bytes (dc27043a)
- service: expose Service and HttpService trait unconditionally (6aee2e6e)
- server: relax
'staticfrom connection IO trait bounds (#3595) (0013bdda)
v1.2.0 (2024-02-21)
Bug Fixes
- http2: typo in trace logging (#3536) (79862ec2)
- rt:
Sleep::downcast_mut_pin()no longer extend lifetime (7206fe30, closes #3556)
Features
- http1: support configurable
max_headers(num)to client and server (#3523) (b1142448) - http2:
Breaking Changes
- The returned lifetime from
Sleep::downcast_mut_pin()is no longer'static. This shouldn't affect most usage. This sort of breaking change is needed because it is wrong.
(7206fe30)
v1.1.0 (2023-12-18)
Bug Fixes
- http1:
Features
-
1.3.015 Apr 2024Nothing published for this version
-
1.2.021 Feb 2024Nothing published for this version
-
1.1.018 Dec 2023Nothing published for this version
-
1.0.116 Nov 2023Release notes
Open source →This release "fixes" or adds a few things that should have been in 1.0.0, but were forgotten. Thus, it includes additions that would normally be a semver-minor release, but because it is so close to 1.0.0, it is released as a patch version.
Bug Fixes
Features
- rt: Make ReadBuf::new public (7161f562)
Breaking Changes
- Pin is #[fundamental], so providing a Read/Write impl for it theoretically conflicts with existing user Read/Write for Pin<...> impls. However, those impls probably don't exist yet. (dd6d81ca)
v1.0.0 (2023-11-15)
Be sure to check out the upgrading guide.
Bug Fixes
- client:
- ffi: fix deadlock in
hyper_executor::poll_next(#3370) (0c7d03ef, closes #3369) - http2:
- server: Respect Expect header only when http proto > 1.0 (#3294) (43d2f5c6)
Features
- client: allow
!SendIO with HTTP/1 client (#3371) (cf87eda8, closes #3363) - error:
- ext:
- lib:
- rt: rename to
Http2ClientConnExecandHttp2ServerConnExec(52b27faa) - server: default
http1header_read_timeoutto 30 seconds (8bf26d1e) - upgrade: introduce tracing as an optional unstable feature (#3326) (da3fc76c, closes #3319)
Breaking Changes
- Upgrade to
http1.0.
(899e92a5)
- (From previous RCs)
ExecutorClientis renamed toHttp2ClientConnExec, andHttp2ConnExecis renamed toHttp2ServerConnExec.
(52b27faa)
-
If you use client HTTP/1 upgrades, you must call
Connection::with_upgrades()to still work the same. (cf87eda8) -
HTTP/2 server builder now has a default max concurrent streams. This is a behavior change. Consider setting your own maximum. (dd638b5b)
-
Do not build any logic depending on the exact types of an
Error::source(). They are only for debugging. (502a6450) -
The format no longer prints the error chain. Be sure to check if you are logging errors directly.
The
Error::message()method is removed, it is no longer needed.The
Error::into_cause()method is removed. (50f123af) -
The
ReasonPhrase::from_bytes_unchecked()method is gone. Usefrom_static()orTryFromto construct one.
(4021c57b)
-
1.0.015 Nov 2023Nothing published for this version
-
1.0.0-rc.410 Jul 2023 pre-releaseRelease notes
Open source →Bug Fixes
- http1:
Features
- client: Make clients able to use non-Send executor (#3184) (d977f209, closes #3017)
- rt:
- service: change Service::call to take &self (#3223) (d894439e, closes #3040)
Breaking Changes
- Any IO transport type provided must now implement
hyper::rt::{Read, Write}instead oftokio::iotraits. You can grab a helper type fromhyper-utilto wrap Tokio types, or implement the traits yourself, if it's a custom type. (f9f65b7a) client::conn::http2types now use another generic for anExecutor. Code that namesConnectionneeds to include the additional generic parameter. (d977f209)- The Service::call function no longer takes a mutable reference to self. The FnMut trait bound on the service::util::service_fn function and the trait bound on the impl for the ServiceFn struct were changed from FnMut to Fn.
(d894439e)
-
1.0.0-rc.323 Feb 2023 pre-releaseRelease notes
Open source →Bug Fixes
- server: prevent sending 100-continue if user drops request body (#3137) (499fe1f9)
Features
- client:
- rt: make private executor traits public (but sealed) in
rt::bounds(#3127) (fc9f3070, closes #2051, #3097)
Breaking Changes
-
1.0.0-rc.229 Dec 2022 pre-releaseRelease notes
Open source →Bug Fixes
- client: send an error back to client when dispatch misbehaves () (75aac9f4, closes #2649)
- http2: Fix race condition in client dispatcher (#3041) (f202230c)
Features
- body: upgrade to http-body 1.0.0-rc.2 (#3106) (51b45e3f)
- client:
- rt: Clean up Timer trait (#3037) (8790fee7, closes #3028)
- server:
Breaking Changes
-
1.0.0-rc.126 Oct 2022 pre-releaseRelease notes
Open source →Bug Fixes
- http1:
- trim obs-folded headers when unfolding (#2926) (d4b5bd4e)
Features
- body:
- client:
- ffi: add http1_allow_multiline_headers (#2918) (09e35668)
- lib: remove
streamcargo feature (#2896) (ce72f734, closes #2855) - rt: add Timer trait (#2974) (fae97ced)
- server:
- service: create own
Servicetrait (#2920) (fee7d361, closes #2853)
Breaking Changes
-
The polling functions of the
Bodytrait have been redesigned.The free functions
hyper::body::to_bytesandaggregatehave been removed. Similar functionality is onhttp_body_util::BodyExt::collect. (0888623d) -
Either choose a version-specific
Connectiontype, or look for the auto-version type inhyper-util. (0766d3f7) -
Pick a version-specific connection, or use the combined one in
hyper-util. (8ae73cac) -
Change any manual
impl tower::Serviceto implementhyper::service::Serviceinstead. Thepoll_readymethod has been removed. (fee7d361) -
The trait has been renamed. (031454e5)
-
A channel body will be available in
hyper-util. (d963e6a9) -
Use the types from
http-body-util. (9e8fc8fc) -
Use
connectfromhyper-util. (5e206883) -
A pooling client is in the hyper-util crate. (bb3af17c)
-
Tower
Serviceutilities will exist inhyper-util. (889fa2d8)
- http1:
-
0.14.3216 Dec 2024Release notes
Open source →Features
- server: add
Builder::max_pending_accept_reset_streams(num)option (a24f0c0)
Bug Fixes
- http1: fix intermittent panic parsing partial headers (0f274ae)
New Contributors
Full Changelog: v0.14.31...v0.14.32
- server: add
-
0.14.3115 Oct 2024Nothing published for this version
-
0.14.3009 Jul 2024Nothing published for this version
-
0.14.2903 Jun 2024Nothing published for this version
-
0.14.2818 Dec 2023Nothing published for this version
-
0.14.2726 Jun 2023Nothing published for this version
-
0.14.2613 Apr 2023Nothing published for this version
-
0.14.2510 Mar 2023Nothing published for this version
-
0.14.2402 Feb 2023Nothing published for this version
-
0.14.2307 Nov 2022Nothing published for this version
-
0.14.2231 Oct 2022Nothing published for this version
-
0.14.2131 Oct 2022Nothing published for this version
-
0.14.2007 Jul 2022Nothing published for this version
-
0.14.1927 May 2022Release notes
Open source →Bug Fixes
- http1: fix preserving header case without enabling ffi (#2820) (6a35c175)
- server: don't add implicit content-length to HEAD responses (#2836) (67b73138)
Features
- server:
Breaking Changes
- ffi (unstable):
hyper_clientconn_options_newno longer sets thehttp1_preserve_header_caseconnection option by default. Users should now callhyper_clientconn_options_set_preserve_header_caseif they desire that functionality. (78de8914)
-
0.14.1822 Mar 2022 -
0.14.1710 Feb 2022Release notes
Open source → -
0.14.1609 Dec 2021Release notes
Open source →Bug Fixes
- http1: return 414 when URI contains more than 65534 characters (#2706) (5f938fff, closes #2701)
- http2: received
Body::size_hint()now return 0 if implicitly empty (#2715) (84b78b6c) - server: use case-insensitive comparison for Expect: 100-continue (#2709) (7435cc33, closes #2708)
Features
-
0.14.1516 Nov 2021Release notes
Open source → -
0.14.1422 Oct 2021 -
0.14.1316 Sep 2021Release notes
Open source →Bug Fixes
- client: don't reuse a connection while still flushing (c88011da)
- server: convert panic to error if Connection::without_shutdown called on HTTP/2 conn (ea3e2282)
Features
-
0.14.1224 Aug 2021Release notes
Open source →Bug Fixes
- ffi: on_informational callback had no headers (39b6d01a)
- http1: apply header title case for consecutive dashes (#2613) (684f2fa7)
- http2: improve errors emitted by HTTP2
Upgradedstream shutdown (#2622) (be08648e)
Features
-
0.14.1121 Jul 2021Release notes
Open source →Bug Fixes
- client: retry when pool checkout returns closed HTTP2 connection (#2585) (52214f39)
- http2:
Features
- ffi: add hyper_request_on_informational (25d18c0b)
-
0.14.1007 Jul 2021Release notes
Open source → -
0.14.907 Jun 2021Release notes
Open source →Bug Fixes
- http1: reduce memory used with flatten write strategy (eb0c6463)
-
0.14.825 May 2021Release notes
Open source →Features
- client: allow to config http2 max concurrent reset streams (#2535) (b9916c41)
- error: add
Error::is_parse_too_largeandError::is_parse_statusmethods (#2538) (960a69a5) - http2:
Performance
- http2: reduce amount of adaptive window pings as BDP stabilizes (#2550) (4cd06bf2)
-
0.14.722 Apr 2021Release notes
Open source →Bug Fixes
- http1: http1_title_case_headers should move Builder (a303b3c3)
Features
- server: implement forgotten settings for case preserving (4fd6c4cb)
-
0.14.621 Apr 2021 withdrawn -
0.14.526 Mar 2021Release notes
Open source →Bug Fixes
- client: omit default port from automatic Host headers (#2441) (0b11eee9)
- headers: Support multiple Content-Length values on same line (#2471) (48fdaf16, closes #2470)
- server: skip automatic Content-Length headers when not allowed (#2216) (8cbf9527, closes #2215)
Features
-
0.14.405 Feb 2021 -
0.14.305 Feb 2021Release notes
Open source →Bug Fixes
- client: HTTP/1 client "Transfer-Encoding" repair code would panic (#2410) (2c8121f1, closes #2409)
- http1: fix server misinterpreting multiple Transfer-Encoding headers (8f93123e)
Features
-
0.14.229 Dec 2020 -
0.14.123 Dec 2020Release notes
Open source →- Fixes building documentation.
v0.14.0 (2020-12-23)
Bug Fixes
Features
- client:
- http1: Make HTTP/1 support an optional feature (2a19ab74)
- http2: Make HTTP/2 support an optional feature (b819b428)
- lib:
- server: Make the
servercode an optional feature (#2334) (bdb5e5d6) - upgrade: Moved HTTP upgrades off
Bodyto a new API (#2337) (121c3313, closes #2086)
Breaking Changes
-
hyper depends on
tokiov1 andbytesv1. -
Custom resolvers used with
HttpConnectormust change to resolving to an iterator ofSocketAddrs instead ofIpAddrs. (b4e24332) -
hyper no longer emits
logrecords automatically. If you need hyper to integrate with aloglogger (as opposed totracing), you can addtracing = { version = "0.1", features = ["log"] }to activate them. (db32e105) -
Removed
http1_writevmethods fromclient::Builder,client::conn::Builder,server::Builder, andserver::conn::Builder.Vectored writes are now enabled based on whether the
AsyncWriteimplementation in use supports them, rather than though adaptive detection. To explicitly disable vectored writes, users may wrap the IO in a newtype that implementsAsyncReadandAsyncWriteand returnsfalsefrom itsAsyncWrite::is_write_vectoredmethod. (d6aadb83) -
The method
Body::on_upgrade()is gone. It is essentially replaced withhyper::upgrade::on(msg). (121c3313) -
All optional features have been disabled by default. (ed2b22a7)
-
The HTTP server code is now an optional feature. To enable the server, add
features = ["server"]to the dependency in yourCargo.toml. (bdb5e5d6) -
The HTTP client of hyper is now an optional feature. To enable the client, add
features = ["client"]to the dependency in yourCargo.toml. (4e55583d) -
This puts all HTTP/1 methods and support behind an
http1cargo feature, which will not be enabled by default. To use HTTP/1, addfeatures = ["http1"]to the hyper dependency in yourCargo.toml.
(2a19ab74)
- This puts all HTTP/2 methods and support behind an
http2cargo feature, which will not be enabled by default. To use HTTP/2, addfeatures = ["http2"]to the hyper dependency in yourCargo.toml.
(b819b428)
-
0.14.023 Dec 2020Nothing published for this version
-
0.13.1005 Feb 2021Nothing published for this version
-
0.13.902 Nov 2020Release notes
Open source →Bug Fixes
- client: fix panic when addrs in ConnectingTcpRemote is empty (#2292) (01103da5, closes #2291)
- http2: reschedule keep alive interval timer once a pong is received (2a938d96, closes #2310)
Features
-
0.13.818 Sep 2020 -
0.13.714 Jul 2020Release notes
Open source →