PackageTrack
Sign in Get early access

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 2026
2015 2017 2019 2021 2023 2025
Release Pre-release Withdrawn

Releases

latest 60 of 251
  1. 1.11.0 20 Jul 2026
    Release notes

    Features

    • rt: add ReadBufCursor::initialized_unfilled() method (#4115) (ccc1e850)

    Bug Fixes

    All PRs

    New Contributors

    Open source →
  2. 1.10.1 29 May 2026
    Release notes

    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

    Open source →
    Release notes

    Bug Fixes

    • http1: fix busy loop when peer half-closes and open body (#4086) (c6cb906f, closes #4085)

    v1.10.0 (2026-05-27)

    Bug Fixes

    • http1:
      • send error when dispatcher is dropped mid-body (#4069) (b7a679ba, closes #3995, #4016)
      • fix reading large bodies on 32-bit systems (#4056) (b12f6525, closes #4055)
      • fix rare missed write wakeup on connections v2 (743a3ba0)
    • http2:
      • do not reserve capacity before body data is available (#4061) (99f24345, closes #4003)
      • reading trailers shouldn't propagate NO_ERROR from early response (#3998) (e5ad96b1)

    Features

    • http2:
      • add reset_stream_duration() client option (#4068) (156a6f6a, closes #2599)
      • Add 'header_table_size()' method to server builder (#4062) (6c9182c4)

    v1.9.0 (2026-03-31)

    Bug Fixes

    • ffi: validate null pointers before dereferencing in request/response functions (#4038 (28e73ccd)
    • http1:
      • allow keep-alive for chunked requests with trailers (#4043) (7211ec25, closes #4044)
      • use case-insensitive matching for trailer fields (#4011) (3b344cac, closes #4010)
      • use httparse config for Servers (#4002) (bcb8ec57, closes #3923)
    • http2:
      • cancel sending client request body on response future drop (#4042) (5b17a69e, closes #4040)
      • non-utf8 char in Connection header may cause panic when calling to_str (#4019) (c36ca8a5)

    Features

    • client:
      • expose HTTP/2 current max stream count (#4026) (d51cb715)
      • add HTTP/2 max_local_error_reset_streams option (#4021) (57787459)
    • error: add 'Error::is_parse_version_h2' method (393c77c7)
    • http1: add UpgradeableConnection::into_parts (e21205cf)
    Open source →
  3. 1.10.0 27 May 2026
    Release notes

    Features

    Bug Fixes

    • http1:
    • http2:
      • do not reserve capacity before body data is available (#4061) (99f24345, closes #4003)
      • reading trailers shouldn't propagate NO_ERROR from early response (#3998) (e5ad96b1)

    Refactors, chores, et al

    New Contributors

    Full Changelog: v1.9.0...v1.10.0

    Open source →
  4. 1.9.0 31 Mar 2026
    Release notes

    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:
      • cancel sending client request body on response future drop (#4042) (5b17a69e, closes #4040)
      • non-utf8 char in Connection header may cause panic when calling to_str (#4019) (c36ca8a5)

    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_streams option 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

    Open source →
  5. 1.8.1 13 Nov 2025
    Release notes

    Bug Fixes

    • http1: fix consuming extra CPU from previous change (#3977) (4492f31e)

    Full Changelog: v1.8.0...v1.8.1

    Open source →
    Release notes

    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 !Send futures. 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 Http2ClientConnExec trait no longer dyn-compatible, because it now expects to be Clone. This should not break usage of the conn builder, because it already separately had E: Clone bounds. If someone were using dyn 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:
      • add a TrySendError::error() method (#3885) (efa0b269)
      • add a TrySendError::message() method (#3884) (03fd6aff)
    • error: add Error::is_shutdown() (#3863) (b8affd8a, closes #2745)
    • server: add allow_multiple_spaces_in_request_line_delimiters http1 builder method (#3929) (9749184f)

    v1.6.0 (2025-01-28)

    Bug Fixes

    • server:
      • start http1 header read timeout when conn is idle (#3828) (10b09ffc, closes #3780, #3781)
      • change max_local_error_reset_streams function to &mut self (#3820) (e981a91e)

    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 self and returns &mut Self. In practice, this shouldn't break almost anyone. It was the wrong receiver and return types. (e981a91e)
    Open source →
  6. 1.8.0 11 Nov 2025
    Release notes

    Highlights

    Features

    • rt: add Timer::now() method to allow overriding the instant returned (#3965) (5509ebe6)

    Bug Fixes

    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 !Send futures. 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
      Http2ClientConnExec trait no longer dyn-compatible, because it now expects to
      be Clone. This should not break usage of the conn builder, because it already
      separately had E: Clone bounds. If someone were using dyn 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

    New Contributors

    Open source →
  7. 1.7.0 18 Aug 2025
    Release notes

    Highlights

    Features

    • client:
    • error: add Error::is_shutdown() (#3863) (b8affd8a, closes #2745)
    • server: add allow_multiple_spaces_in_request_line_delimiters http1 builder method (#3929) (9749184f)

    Bug Fixes

    • server: improve caching accuracy of Date header (#3887) (436cadd1)

    What's Changed

    New Contributors

    Full Changelog: v1.6.0...v1.7.0

    Open source →
  8. 1.6.0 28 Jan 2025
    Release notes

    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

    Breaking Changes

    • http2::Builder::max_local_error_reset_streams() now takes &mut self and 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

    Open source →
  9. 1.5.2 16 Dec 2024
    Release notes

    Bug Fixes

    Features

    New Contributors

    Thanks

    Full Changelog: v1.5.1...v1.5.2

    Open source →
    Release notes

    Bug Fixes

    • http1:
      • fix intermitent panic parsing partial headers (#3812) (a131111f, closes #3811)
      • skip debug assertion of content length for HEAD responses (#3795) (eaf2267c, closes #3794)

    Features

    Open source →
  10. 1.5.1 19 Nov 2024
    Release notes

    Bug Fixes

    • http2:
      • pass proper value to h2 max_local_error_reset_streams (4a20147a)
      • improve graceful shutdown during handshake (#3729) (13b05943)

    v1.5.0 (2024-10-15)

    Bug Fixes

    • http1:
      • improve performance of parsing sequentially partial messages (#3764) (3900a23)
      • send 'connection: close' when connection is ending (#3725) (c86a6bcb, closes #3720)
      • make date_header effective (#3718) (7de02373)
    • http2: strip content-length header in response to CONNECT requests (#3748) (67a4a498)

    Features

    • client: Add HTTP/2 builder options header_table_size() and max_concurrent_streams() (4c84e8c1)
    • rt: add ReadBufCursor methods remaining() and put_slice() (#3700) (5a13041e)
    Open source →
  11. 1.5.0 15 Oct 2024

    Nothing published for this version

  12. 1.4.1 09 Jul 2024
    Release notes

    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

    • client:
      • add SendRequest::try_send_request() method (#3691) (4ffaad53)
      • remove Send +Sync bounds requirement of http2::Connection executor (#3682) (56c3cd56)
      • remove 'static lifetime bound on http1/2 client IO (#3667) (9580b357)
    • http1: add support for receiving trailer fields (#3637) (ac84af6b, closes #2703)
    • server: add Builder::auto_date_header(bool) to allow disabling Date headers (721785ef)
    • service: implement Service for reference types (#3607) (eade122d)
    Open source →
  13. 1.4.0 01 Jul 2024

    Nothing published for this version

  14. 1.3.1 16 Apr 2024
    Release notes

    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:
      • max_header_list_size(num) defaults to 16kb (203d1b09)
      • initial_max_send_streams defaults to 100 (2d1bd708)
    • server:
      • avoid unwrapping for the Future impl of HTTP/1 UpgradeableConnection (#3627) (b79be911, closes #3621)
      • avoid graceful_shutdown panic on upgraded H1 connection (#3616) (6ecf8521)

    Features

    • client:
      • add max_header_list_size(num) to http2::Builder. (1c5b1b87)
      • add max_pending_accept_reset_streams HTTP2 option (#3617) (330ddf1d)
    • ext: implement From ReasonPhrase for Bytes (dc27043a)
    • service: expose Service and HttpService trait unconditionally (6aee2e6e)
    • server: relax 'static from 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:
      • add config for max_local_error_reset_streams in server (#3530) (d7680e30)
      • add initial_max_send_streams method to HTTP/2 client builder (#3524) (fdfa60d9)
      • add max_pending_accept_reset_streams(num) back to HTTP/2 server builder (#3507 (a9fa893f)

    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:
      • add internal limit for chunked extensions (#3495) (d71ff962)
      • reject chunked headers missing a digit (#3494) (82915386)

    Features

    • client: add http1::Connection without_shutdown() method (#3430) (210bfaa7)
    • http1: Add support for sending HTTP/1.1 Chunked Trailer Fields (#3375) (31b41807, closes #2719)
    • server: expose server::conn::http1::UpgradeableConnection (#3457) (6e3042a8)
    Open source →
  15. 1.3.0 15 Apr 2024

    Nothing published for this version

  16. 1.2.0 21 Feb 2024

    Nothing published for this version

  17. 1.1.0 18 Dec 2023

    Nothing published for this version

  18. 1.0.1 16 Nov 2023
    Release notes

    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

    • rt: implement Read/Write for Pin<P> (#3413) (dd6d81ca, closes #3412)

    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:
      • avoid double-polling a Select future (#3290) (fece9f7f, closes #3289)
      • early server response shouldn't propagate NO_ERROR (#3275) (194e6f98, closes #2872)
      • remove Send bounds for request Body (#3266) (4ace340b, closes #3184)
    • ffi: fix deadlock in hyper_executor::poll_next (#3370) (0c7d03ef, closes #3369)
    • http2:
      • don't send keep-alive ping when idle (#3381) (429ad8a3)
      • change default server max concurrent streams to 200 (#3362) (dd638b5b, closes #3358)
    • server: Respect Expect header only when http proto > 1.0 (#3294) (43d2f5c6)

    Features

    • client: allow !Send IO with HTTP/1 client (#3371) (cf87eda8, closes #3363)
    • error:
      • Error::source() is purposefully unspecified (#3318) (502a6450, closes #2843)
      • change Display for Error to only print top error (#3312) (50f123af, closes #2844)
    • ext:
      • make ReasonPhrase::from_static a const fn (d4a61e3d)
      • remove ReasonPhrase::from_bytes_unchecked() method (4021c57b)
    • lib:
    • rt: rename to Http2ClientConnExec and Http2ServerConnExec (52b27faa)
    • server: default http1 header_read_timeout to 30 seconds (8bf26d1e)
    • upgrade: introduce tracing as an optional unstable feature (#3326) (da3fc76c, closes #3319)

    Breaking Changes

    • Upgrade to http 1.0.

    (899e92a5)

    • (From previous RCs) ExecutorClient is renamed to Http2ClientConnExec, and Http2ConnExec is renamed to Http2ServerConnExec.

    (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. Use from_static() or TryFrom to construct one.

    (4021c57b)

    Open source →
  19. 1.0.0 15 Nov 2023

    Nothing published for this version

  20. 1.0.0-rc.4 10 Jul 2023 pre-release
    Release notes

    Bug Fixes

    • http1:
      • http1 server graceful shutdown fix (#3261) (f4b51300)
      • send error on Incoming body when connection errors (#3256) (52f19259, closes #3253)
      • properly end chunked bodies when it was known to be empty (#3254) (fec64cf0, closes #3252)

    Features

    • client: Make clients able to use non-Send executor (#3184) (d977f209, closes #3017)
    • rt:
      • replace IO traits with hyper::rt ones (#3230) (f9f65b7a, closes #3110)
      • add downcast on Sleep trait (#3125) (d92d3917, closes #3027)
    • 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 of tokio::io traits. You can grab a helper type from hyper-util to wrap Tokio types, or implement the traits yourself, if it's a custom type. (f9f65b7a)
    • client::conn::http2 types now use another generic for an Executor. Code that names Connection needs 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)

    Open source →
  21. 1.0.0-rc.3 23 Feb 2023 pre-release
    Release notes

    Bug Fixes

    • server: prevent sending 100-continue if user drops request body (#3137) (499fe1f9)

    Features

    • client:
      • add is_ready() and is_closed() methods to SendRequest (#3148) (3fb59919)
      • http2 builder now requires an Executor (#3135) (8068aa01, closes #3128)
      • remove unneeded HTTP/1 executor (#3108) (1de9accf)
    • rt: make private executor traits public (but sealed) in rt::bounds (#3127) (fc9f3070, closes #2051, #3097)

    Breaking Changes

    • hyper::client::conn::Http2::Builder::new now requires an executor argument. (8068aa01)
    • The method hyper::client::conn::http1::Builder::executor() is removed, since it did nothing. (1de9accf)
    Open source →
  22. 1.0.0-rc.2 29 Dec 2022 pre-release
    Release notes

    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:
      • remove http2_ prefixes from client::conn::http2::Builder methods (669df217)
      • remove http1_ prefixes from client::conn::http1::Builder methods (4cbaef79)
      • implement Clone for http2::SendRequest (#3042) (00ea49e4, closes #3036)
      • allow ignoring HTTP/1 invalid header lines in requests (81e25fa8)
    • rt: Clean up Timer trait (#3037) (8790fee7, closes #3028)
    • server:
      • remove http1_ method prefixes from server::conn::http2::Builder (291ed0b4)
      • remove http1_ method prefixes from server::conn::http2::Builder (48e70c69)
      • remove server::conn::http2::Builder::with_executor() (#3089) (ab59a6f7, closes #3087)

    Breaking Changes

    • removes server::conn::http2::Builder::with_executor() (ab59a6f7)
    • The return types of Timer have been changed. (8790fee7)
    • The return types for Frame::into_data() and Frame::into_trailers() have been changed from Option<T> to Result<T, Self>.
    Open source →
  23. 1.0.0-rc.1 26 Oct 2022 pre-release
    Release notes

    Bug Fixes

    • http1:
      • trim obs-folded headers when unfolding (#2926) (d4b5bd4e)

    Features

    • body:
      • rename Body struct to Incoming (#3022) (95a153bb, closes #2971)
      • update HttpBody trait to use Frames (#3020) (0888623d, closes #3010)
      • make body::Sender and Body::channel private (#2970) (d963e6a9, closes #2962)
      • remove "full" constructors from Body (#2958) (9e8fc8fc)
    • client:
      • remove client::conn::{SendRequest, Connection} (#2987) (8ae73cac)
      • remove client::connect module (#2949) (5e206883)
      • remove higher-level hyper::Client (#2941) (bb3af17c)
      • remove hyper::client::server (#2940) (889fa2d8)
      • introduce version-specific client modules (#2906) (509672aa)
    • ffi: add http1_allow_multiline_headers (#2918) (09e35668)
    • lib: remove stream cargo feature (#2896) (ce72f734, closes #2855)
    • rt: add Timer trait (#2974) (fae97ced)
    • server:
      • remove server::conn::{Http, Connection} types (#3013) (0766d3f7, closes #3012)
      • server::conn::http1 and server::conn::http2 modules (#3011) (fc4d3356, closes #2851)
      • remove the high-level Server API (#2932) (3c7bef3b)
      • remove AddrStream struct (#2869) (e9cab49e, closes #2850)
    • service: create own Service trait (#2920) (fee7d361, closes #2853)

    Breaking Changes

    • The polling functions of the Body trait have been redesigned.

      The free functions hyper::body::to_bytes and aggregate have been removed. Similar functionality is on http_body_util::BodyExt::collect. (0888623d)

    • Either choose a version-specific Connection type, or look for the auto-version type in hyper-util. (0766d3f7)

    • Pick a version-specific connection, or use the combined one in hyper-util. (8ae73cac)

    • Change any manual impl tower::Service to implement hyper::service::Service instead. The poll_ready method 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 connect from hyper-util. (5e206883)

    • A pooling client is in the hyper-util crate. (bb3af17c)

    • Tower Service utilities will exist in hyper-util. (889fa2d8)

    Open source →
  24. 0.14.32 16 Dec 2024
    Release notes

    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

    Open source →
  25. 0.14.31 15 Oct 2024

    Nothing published for this version

  26. 0.14.30 09 Jul 2024

    Nothing published for this version

  27. 0.14.29 03 Jun 2024

    Nothing published for this version

  28. 0.14.28 18 Dec 2023

    Nothing published for this version

  29. 0.14.27 26 Jun 2023

    Nothing published for this version

  30. 0.14.26 13 Apr 2023

    Nothing published for this version

  31. 0.14.25 10 Mar 2023

    Nothing published for this version

  32. 0.14.24 02 Feb 2023

    Nothing published for this version

  33. 0.14.23 07 Nov 2022

    Nothing published for this version

  34. 0.14.22 31 Oct 2022

    Nothing published for this version

  35. 0.14.21 31 Oct 2022

    Nothing published for this version

  36. 0.14.20 07 Jul 2022

    Nothing published for this version

  37. 0.14.19 27 May 2022
    Release notes

    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:
      • add Connection::http2_max_header_list_size option (#2828) (a32658c1, closes #2826)
      • add AddrStream::local_addr() (#2816) (ffbf610b, closes #2773)

    Breaking Changes

    • ffi (unstable):
      • hyper_clientconn_options_new no longer sets the http1_preserve_header_case connection option by default. Users should now call hyper_clientconn_options_set_preserve_header_case if they desire that functionality. (78de8914)
    Open source →
  38. 0.14.18 22 Mar 2022
    Release notes

    Bug Fixes

    • ffi: don't build C libraries by default (1c663706)

    Features

    • client: add HttpInfo::local_addr() method (055b4e7e, closes #2767)
    Open source →
  39. 0.14.17 10 Feb 2022
    Release notes

    Bug Fixes

    • client: avoid panics in uses of Instant (#2746) (dcdd6d10)

    Features

    • client: implement the HTTP/2 extended CONNECT protocol from RFC 8441 (#2682) (5ec094ca)
    • error: add Error::message (#2737) (6932896a, closes #2732)
    • http1: implement obsolete line folding (#2734) (1f0c177b)
    Open source →
  40. 0.14.16 09 Dec 2021
    Release notes

    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

    • http2: add http2_max_send_buf_size option to client and server (bff977b7)
    • server: add HTTP/1 header read timeout option (#2675) (842c6553, closes #2457)
    Open source →
  41. 0.14.15 16 Nov 2021
    Release notes

    Bug Fixes

    • client: cancel blocking DNS lookup if GaiFuture is dropped (174b553d

    Features

    • http1: add http1_writev(bool) options to Client and Server builders, to allow forcing vectored writes (80627141)
    • upgrade: allow http upgrades with any body type (ab469eb3)
    Open source →
  42. 0.14.14 22 Oct 2021
    Release notes

    Bug Fixes

    • client:
      • make ResponseFuture implement Sync (bd6c35b9)
      • remove ipv6 square brackets before resolving (910e0268)

    Features

    • h2: always include original h2 error on broken pipe (6169db25)
    • server: Remove Send + Sync requirement for Body in with_graceful_shutdown (1d553e52)
    Open source →
  43. 0.14.13 16 Sep 2021
    Release notes

    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

    • ffi: add hyper_request_set_uri_parts (a54689b9)
    • lib:
      • Export more things with Cargo features (server, !http1, !http2) (0a4b56ac)
      • Export rt module independently of Cargo features (cf6f62c7)
    Open source →
  44. 0.14.12 24 Aug 2021
    Release notes

    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 Upgraded stream shutdown (#2622) (be08648e)

    Features

    • client: expose http09 and http1 options on client::conn::Builder (#2611) (73bff4e9, closes #2461)
    Open source →
  45. 0.14.11 21 Jul 2021
    Release notes

    Bug Fixes

    • client: retry when pool checkout returns closed HTTP2 connection (#2585) (52214f39)
    • http2:
      • improve I/O errors emitted by H2Upgraded (#2598) (f51c677d)
      • preserve proxy-authenticate and proxy-authorization headers (#2597) (52435701)

    Features

    • ffi: add hyper_request_on_informational (25d18c0b)
    Open source →
  46. 0.14.10 07 Jul 2021
    Release notes

    Bug Fixes

    • http1:
      • reject content-lengths that have a plus sign prefix (06335158)
      • protect against overflow in chunked decoder (efd9a982)

    Features

    • ffi: add option to get raw headers from response (8c89a8c1)
    Open source →
  47. 0.14.9 07 Jun 2021
    Release notes

    Bug Fixes

    • http1: reduce memory used with flatten write strategy (eb0c6463)
    Open source →
  48. 0.14.8 25 May 2021
    Release notes

    Features

    • client: allow to config http2 max concurrent reset streams (#2535) (b9916c41)
    • error: add Error::is_parse_too_large and Error::is_parse_status methods (#2538) (960a69a5)
    • http2:
      • Implement Client and Server CONNECT support over HTTP/2 (#2523) (5442b6fa, closes #2508)
      • allow HTTP/2 requests by ALPN when http2_only is unset (#2527) (be9677a1)

    Performance

    • http2: reduce amount of adaptive window pings as BDP stabilizes (#2550) (4cd06bf2)
    Open source →
  49. 0.14.7 22 Apr 2021
    Release notes

    Bug Fixes

    • http1: http1_title_case_headers should move Builder (a303b3c3)

    Features

    • server: implement forgotten settings for case preserving (4fd6c4cb)
    Open source →
  50. 0.14.6 21 Apr 2021 withdrawn
    Release notes

    Features

    • client: add option to allow misplaced spaces in HTTP/1 responses (#2506) (11345394)
    • http1: add options to preserve header casing (#2480) (dbea7716, closes #2313)
    Open source →
  51. 0.14.5 26 Mar 2021
    Release notes

    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

    • client: allow HTTP/0.9 responses behind a flag (#2473) (68d4e4a3, closes #2468)
    • server: add AddrIncoming::from_listener constructor (#2439) (4c946af4)
    Open source →
  52. 0.14.4 05 Feb 2021
    Release notes

    Bug Fixes

    • build: Fix compile error when only http1 feature was enabled.
    Open source →
  53. 0.14.3 05 Feb 2021
    Release notes

    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

    • body:
      • reexport hyper::body::SizeHint (#2404) (9956587f)
      • add send_trailers to Body channel's Sender (#2387) (bf8d74ad, closes #2260)
    • ffi:
      • add HYPERE_INVALID_PEER_MESSAGE error code for parse errors (1928682b)
      • Initial C API for hyper (3ae1581a)
    Open source →
  54. 0.14.2 29 Dec 2020
    Release notes

    Features

    • client: expose connect types without proto feature (#2377) (73a59e5f)
    • server: expose Accept without httpX features (#2382) (a6d4fcbe)
    Open source →
  55. 0.14.1 23 Dec 2020
    Release notes
    • Fixes building documentation.

    v0.14.0 (2020-12-23)

    Bug Fixes

    • client: log socket option errors instead of returning error (#2361) (dad5c879, closes #2359)
    • http1:
      • ignore chunked trailers (#2357) (1dd761c8, closes #2171)
      • ending close-delimited body should close (#2322) (71f34024)

    Features

    • client:
      • change DNS Resolver to resolve to SocketAddrs (#2346) (b4e24332, closes #1937)
      • Make client an optional feature (4e55583d)
    • http1: Make HTTP/1 support an optional feature (2a19ab74)
    • http2: Make HTTP/2 support an optional feature (b819b428)
    • lib:
      • Upgrade to Tokio 1.0, Bytes 1.0, http-body 0.4 (#2369) (fad42acc, closes #2370)
      • remove dependency on tracing's log feature (#2342) (db32e105, closes #2326)
      • disable all optional features by default (#2336) (ed2b22a7)
    • server: Make the server code an optional feature (#2334) (bdb5e5d6)
    • upgrade: Moved HTTP upgrades off Body to a new API (#2337) (121c3313, closes #2086)

    Breaking Changes

    • hyper depends on tokio v1 and bytes v1.

    • Custom resolvers used with HttpConnector must change to resolving to an iterator of SocketAddrs instead of IpAddrs. (b4e24332)

    • hyper no longer emits log records automatically. If you need hyper to integrate with a log logger (as opposed to tracing), you can add tracing = { version = "0.1", features = ["log"] } to activate them. (db32e105)

    • Removed http1_writev methods from client::Builder, client::conn::Builder, server::Builder, and server::conn::Builder.

      Vectored writes are now enabled based on whether the AsyncWrite implementation in use supports them, rather than though adaptive detection. To explicitly disable vectored writes, users may wrap the IO in a newtype that implements AsyncRead and AsyncWrite and returns false from its AsyncWrite::is_write_vectored method. (d6aadb83)

    • The method Body::on_upgrade() is gone. It is essentially replaced with hyper::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 your Cargo.toml. (bdb5e5d6)

    • The HTTP client of hyper is now an optional feature. To enable the client, add features = ["client"] to the dependency in your Cargo.toml. (4e55583d)

    • This puts all HTTP/1 methods and support behind an http1 cargo feature, which will not be enabled by default. To use HTTP/1, add features = ["http1"] to the hyper dependency in your Cargo.toml.

    (2a19ab74)

    • This puts all HTTP/2 methods and support behind an http2 cargo feature, which will not be enabled by default. To use HTTP/2, add features = ["http2"] to the hyper dependency in your Cargo.toml.

    (b819b428)

    Open source →
  56. 0.14.0 23 Dec 2020

    Nothing published for this version

  57. 0.13.10 05 Feb 2021

    Nothing published for this version

  58. 0.13.9 02 Nov 2020
    Release notes

    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

    • client:
      • add HttpConnector::set_local_addresses to set both IPv6 and IPv4 local addrs ( (fb19f3a8)
      • Add accessors to Connected fields (#2290) (2dc9768d)
    Open source →
  59. 0.13.8 18 Sep 2020
    Release notes

    Bug Fixes

    • http1: return error if user body ends prematurely (1ecbcbb1, closes #2263)

    Features

    • lib: Setting http1_writev(true) will now force writev queue usage (187c22af, closes #2282)
    • server: implement AsRawFd for AddrStream (#2246) (b5d5e214, closes #2245)
    Open source →
  60. 0.13.7 14 Jul 2020
    Release notes

    Bug Fixes

    • client: don't panic in DNS resolution when task cancelled (#2229) (0d0d3635)

    Features

    • client: impl tower_service::Service for &Client (#2089) (77c3b5bc)
    • http2: configure HTTP/2 frame size in the high-level builders too (#2214) (2354a7ee)
    • lib: Move from log to tracing in a backwards-compatible way (#2204) (9832aef9)
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive