v1.9.0
- client:
- error: add 'Error::is_parse_version_h2' method (393c77c7)
- http1: add UpgradeableConnection::into_parts (e21205cf)
- ffi: validate null pointers before dereferencing in request/response functions (#4038 (28e73ccd)
- http1:
- http2:
- docs(error): add more information about is_incomplete_message by @seanmonstar in https://github.com/hyperium/hyper/pull/3978
- Run cargo-audit in CI to check for known vulnerabilities in dependencies. by @f0rki in https://github.com/hyperium/hyper/pull/3246
- refactor(http1): simplify match of Token parse error by @seanmonstar in https://github.com/hyperium/hyper/pull/3981
- refactor(http1): use saturating_sub instead of manual impl by @seanmonstar in https://github.com/hyperium/hyper/pull/3983
- refactor(http1): replace many args of Chunked::step with struct by @seanmonstar in https://github.com/hyperium/hyper/pull/3982
- docs: fix comment in
put_slice()by @coryan in https://github.com/hyperium/hyper/pull/3986 - test(lib): fix unused warnings due to feature gating test imports by @seanmonstar in https://github.com/hyperium/hyper/pull/3997
- docs: improve Read trait and ReadBufCursor documentation by @majiayu000 in https://github.com/hyperium/hyper/pull/4000
- fix: use h1 parser config when parsing server req by @0xPoe in https://github.com/hyperium/hyper/pull/4002
- test(server): fix flaky disable_keep_alive_mid_request by @seanmonstar in https://github.com/hyperium/hyper/pull/4009
- chore(ci): update to actions/checkout@v6 by @tottoto in https://github.com/hyperium/hyper/pull/4005
- chore(ci): update to cargo-check-external-types 0.4.0 by @tottoto in https://github.com/hyperium/hyper/pull/4006
- update copyright year to 2026 by @jasmyhigh in https://github.com/hyperium/hyper/pull/4007
- refactor: avoid unwrap examples by @0xPoe in https://github.com/hyperium/hyper/pull/4001
- fix(http1): use case-insensitive matching for trailer fields by @HueCodes in https://github.com/hyperium/hyper/pull/4011
- chore: convert bug report template to GitHub form by @njg7194 in https://github.com/hyperium/hyper/pull/4015
- chore(ci): force toml mode in yq selecting msrv by @seanmonstar in https://github.com/hyperium/hyper/pull/4020
- fix: non-utf8 char may cause panic when calling to_str by @cuiweixie in https://github.com/hyperium/hyper/pull/4019
- feat(http2/client): add
max_local_error_reset_streamsoption by @ffuugoo in https://github.com/hyperium/hyper/pull/4021 - chore: drop pin-utils dependency by @tottoto in https://github.com/hyperium/hyper/pull/4023
- [minor] doc: Fix HTTP/2 max concurrent stream link by @dentiny in https://github.com/hyperium/hyper/pull/4037
- fix(ffi): validate null pointers before dereferencing in request/resp… by @DhruvaD1 in https://github.com/hyperium/hyper/pull/4038
- h2: expose current max stream count by @howardjohn in https://github.com/hyperium/hyper/pull/4026
- fix(http1): allow keep-alive for chunked requests with trailers by @wi-adam in https://github.com/hyperium/hyper/pull/4043
- fix(http2): cancel pipe_task and send RST_STREAM on response future drop by @mmishra100 in https://github.com/hyperium/hyper/pull/4042
- Add APIs to allow switching an HTTP1 connection to HTTP2 if H2 preface is seen by @pborzenkov in https://github.com/hyperium/hyper/pull/3996
- @f0rki made their first contribution in https://github.com/hyperium/hyper/pull/3246
- @coryan made their first contribution in https://github.com/hyperium/hyper/pull/3986
- @majiayu000 made their first contribution in https://github.com/hyperium/hyper/pull/4000
- @0xPoe made their first contribution in https://github.com/hyperium/hyper/pull/4002
- @jasmyhigh made their first contribution in https://github.com/hyperium/hyper/pull/4007
- @HueCodes made their first contribution in https://github.com/hyperium/hyper/pull/4011
- @njg7194 made their first contribution in https://github.com/hyperium/hyper/pull/4015
- @cuiweixie made their first contribution in https://github.com/hyperium/hyper/pull/4019
- @ffuugoo made their first contribution in https://github.com/hyperium/hyper/pull/4021
- @dentiny made their first contribution in https://github.com/hyperium/hyper/pull/4037
- @DhruvaD1 made their first contribution in https://github.com/hyperium/hyper/pull/4038
- @wi-adam made their first contribution in https://github.com/hyperium/hyper/pull/4043
- @mmishra100 made their first contribution in https://github.com/hyperium/hyper/pull/4042
- @pborzenkov made their first contribution in https://github.com/hyperium/hyper/pull/3996
v1.8.1
- http1: fix consuming extra CPU from previous change (#3977) (4492f31e)
Full Changelog: https://github.com/hyperium/hyper/compare/v1.8.0...v1.8.1
v1.8.0
- rt: add
Timer::now()method to allow overriding the instant returned (#3965) (5509ebe6)
- http1: fix rare missed write wakeup on connections (#3952) (2377b893)
- http2: fix internals of HTTP/2 CONNECT upgrades (#3967) (58e0e7dc, closes #3966)
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)
- chore(ci): update to actions/checkout@v5 by @tottoto in https://github.com/hyperium/hyper/pull/3935
- refactor(ffi): specify "C" ABI explicitly in ffi_fn! macro by @1911860538 in https://github.com/hyperium/hyper/pull/3937
- Update documented default values for
http1::Builderby @Will-Low in https://github.com/hyperium/hyper/pull/3938 - fix(client): port tests to in-memory socket by @cratelyn in https://github.com/hyperium/hyper/pull/3947
- feat: allow overriding the instant returned from Timer by @arielb1 in https://github.com/hyperium/hyper/pull/3965
- fix(http1): poll_loop writes when ready by @lthiery in https://github.com/hyperium/hyper/pull/3952
- test(ready_stream): replace tracing with printlns by @seanmonstar in https://github.com/hyperium/hyper/pull/3973
- fix(http2): fix internals of HTTP/2 CONNECT upgrades by @seanmonstar in https://github.com/hyperium/hyper/pull/3967
- Release v1.8.0 by @seanmonstar in https://github.com/hyperium/hyper/pull/3974
- @Will-Low made their first contribution in https://github.com/hyperium/hyper/pull/3938
- @arielb1 made their first contribution in https://github.com/hyperium/hyper/pull/3965
- @lthiery made their first contribution in https://github.com/hyperium/hyper/pull/3952
v1.7.0
- client:
- error: add
Error::is_shutdown()(#3863) (b8affd8a, closes #2745) - server: add
allow_multiple_spaces_in_request_line_delimitershttp1 builder method (#3929) (9749184f)
- server: improve caching accuracy of Date header (#3887) (436cadd1)
- chore: remove redundant backticks by @jimmycathy in https://github.com/hyperium/hyper/pull/3855
- Gate tests with features they test by @WhyNotHugo in https://github.com/hyperium/hyper/pull/3864
- docs(service): add
HttpServicedocumentation by @cratelyn in https://github.com/hyperium/hyper/pull/3869 - docs(examples): alias Builder for clarity by @Muffeter in https://github.com/hyperium/hyper/pull/3873
- docs(MAINTAINERS): add katelyn martin as collaborator by @seanmonstar in https://github.com/hyperium/hyper/pull/3878
- chore(proto/h2): fix module-level documentation by @cratelyn in https://github.com/hyperium/hyper/pull/3881
- feat(client): add a
TrySendError::message()method by @cratelyn in https://github.com/hyperium/hyper/pull/3884 - feat(client): add a
TrySendError::error()method by @cratelyn in https://github.com/hyperium/hyper/pull/3885 - fix(http2): add decriptive error for non-zero connect request by @samp5 in https://github.com/hyperium/hyper/pull/3886
- refactor(lib): drop futures-util except in ffi by @hanna-kruppe in https://github.com/hyperium/hyper/pull/3890
- fix(date): improve caching accuracy by @Patryk27 in https://github.com/hyperium/hyper/pull/3887
- docs(SECURITY): update policy to use GSA drafts when reporting vulnerabilities by @seanmonstar in https://github.com/hyperium/hyper/pull/3894
- feat: add Error::is_shutdown() by @joshka in https://github.com/hyperium/hyper/pull/3863
- docs: improve ext module overview by @seanmonstar in https://github.com/hyperium/hyper/pull/3921
- docs(rt): improve rt module overview by @seanmonstar in https://github.com/hyperium/hyper/pull/3920
- chore(ci): update to cargo-check-external-types-0.3.0 by @tottoto in https://github.com/hyperium/hyper/pull/3928
- test(common): add missing assertion in full_rewind test by @1911860538 in https://github.com/hyperium/hyper/pull/3926
- fix(lib): avoid implicit cargo feature by @hanna-kruppe in https://github.com/hyperium/hyper/pull/3931
- feat(http1): add allow_multiple_spaces_in_request_line_delimiters h1 builder config method by @mccordryan in https://github.com/hyperium/hyper/pull/3929
- Prepare v1.7.0 by @seanmonstar in https://github.com/hyperium/hyper/pull/3933
- @jimmycathy made their first contribution in https://github.com/hyperium/hyper/pull/3855
- @Muffeter made their first contribution in https://github.com/hyperium/hyper/pull/3873
- @samp5 made their first contribution in https://github.com/hyperium/hyper/pull/3886
- @hanna-kruppe made their first contribution in https://github.com/hyperium/hyper/pull/3890
- @Patryk27 made their first contribution in https://github.com/hyperium/hyper/pull/3887
- @joshka made their first contribution in https://github.com/hyperium/hyper/pull/3863
- @1911860538 made their first contribution in https://github.com/hyperium/hyper/pull/3926
- @mccordryan made their first contribution in https://github.com/hyperium/hyper/pull/3929
Full Changelog: https://github.com/hyperium/hyper/compare/v1.6.0...v1.7.0
v1.6.0
- ext: add
ext::on_informational()callback extension (#3818) (8ce1fcfa, closes #2565) - server: add
http1::Builder::ignore_invalid_headers(bool)option (#3824) (3817a79b)
- server:
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)
- @finnbear made their first contribution in https://github.com/hyperium/hyper/pull/3820
- @GlenDC
- @tottoto
- @seanmonstar
Full Changelog: https://github.com/hyperium/hyper/compare/v1.5.2...v1.6.0
v1.5.2
- http1:
- @23doors made their first contribution in https://github.com/hyperium/hyper/pull/3795
- @ionionascu made their first contribution in https://github.com/hyperium/hyper/pull/3799
- @linyihai made their first contribution in https://github.com/hyperium/hyper/pull/3800
- @suzp1984 made their first contribution in https://github.com/hyperium/hyper/pull/3807
- @seanmonstar
Full Changelog: https://github.com/hyperium/hyper/compare/v1.5.1...v1.5.2
v0.14.32
- server: add
Builder::max_pending_accept_reset_streams(num)option (a24f0c0)
- http1: fix intermittent panic parsing partial headers (0f274ae)
- @cratelyn made their first contribution in https://github.com/hyperium/hyper/pull/3796
Full Changelog: https://github.com/hyperium/hyper/compare/v0.14.31...v0.14.32
v1.5.1
- http2:
- test(client): unflake client try_send_request unit test by @seanmonstar in https://github.com/hyperium/hyper/pull/3770
- docs(lib): fix up misleading example about unstable features by @seanmonstar in https://github.com/hyperium/hyper/pull/3771
- docs(lib): do not inline http rexports by @seanmonstar in https://github.com/hyperium/hyper/pull/3772
- Change graceful_shutdown function behavior. by @ionut-slaveanu in https://github.com/hyperium/hyper/pull/3729
- chore(ci): pin hashbrown in MSRV job by @seanmonstar in https://github.com/hyperium/hyper/pull/3783
- fix(http2): pass proper value to h2
max_local_error_reset_streamsby @magurotuna in https://github.com/hyperium/hyper/pull/3782 - chore(dependencies): remove libc crate from dependencies by @tottoto in https://github.com/hyperium/hyper/pull/3377
- @ionut-slaveanu made their first contribution in https://github.com/hyperium/hyper/pull/3729
- @seanmonstar
- @ionut-slaveanu
- @magurotuna
- @tottoto
Full Changelog: https://github.com/hyperium/hyper/compare/v1.5.0...v1.5.1
v1.5.0
- client: Add HTTP/2 builder options
header_table_size()andmax_concurrent_streams()(4c84e8c1) - rt: add
ReadBufCursormethodsremaining()andput_slice()(#3700) (5a13041e)
- http1:
- http2: strip content-length header in response to CONNECT requests (#3748) (67a4a498)
- @yinheli made their first contribution in https://github.com/hyperium/hyper/pull/3712
- @yhx-12243 made their first contribution in https://github.com/hyperium/hyper/pull/3718
- @friendlyping made their first contribution in https://github.com/hyperium/hyper/pull/3739
- @WhyNotHugo made their first contribution in https://github.com/hyperium/hyper/pull/3742
- @fasterthanlime made their first contribution in https://github.com/hyperium/hyper/pull/3745
- @hongmengning made their first contribution in https://github.com/hyperium/hyper/pull/3753
- @n1haldev made their first contribution in https://github.com/hyperium/hyper/pull/3702
- @nox
- @seanmonstar
- @tottoto
- @0x676e67
- @SabrinaJewson
- @dndx
Full Changelog: https://github.com/hyperium/hyper/compare/v1.4.1...v1.5.0