Skip to content

Commit

Permalink
Update axum, tungstenite, and http libs to v1 (major) (#23026)
Browse files Browse the repository at this point in the history
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [http](https://github.com/hyperium/http) | workspace.dependencies | major | `0.2.8` -> `1.0.0` |
| [http-body](https://github.com/hyperium/http-body) | workspace.dependencies | major | `0.4` -> `1.0` |
| [hyper](https://hyper.rs) ([source](https://github.com/hyperium/hyper)) | workspace.dependencies | major | `0.14.16` -> `1.0.0` |

---

### Release Notes

<details>
<summary>hyperium/http (http)</summary>

### [`v1.1.0`](https://github.com/hyperium/http/blob/HEAD/CHANGELOG.md#110-March-4-2024)

[Compare Source](https://github.com/hyperium/http/compare/v1.0.0...v1.1.0)

-   Add methods to allow trying to allocate in the `HeaderMap`, returning an error if oversize instead of panicking.
-   Add `Extensions::get_or_insert()` method.
-   Implement `From<Uri>` for `uri::Builder`.
-   Fix `HeaderName::from_lowercase` that could allow NUL bytes in some cases.

### [`v1.0.0`](https://github.com/hyperium/http/blob/HEAD/CHANGELOG.md#100-November-15-2023)

[Compare Source](https://github.com/hyperium/http/compare/v0.2.12...v1.0.0)

-   Implement `Clone` for `Request`, `Response`, and `Extensions`. This breaking change requires
    that all extensions now implement `Clone`.
-   Add a default-on `std` feature. Disabling it currently is not supported.
-   Fix MIRI warnings in `HeaderMap::iter()`.

### [`v0.2.12`](https://github.com/hyperium/http/releases/tag/v0.2.12)

[Compare Source](https://github.com/hyperium/http/compare/v0.2.11...v0.2.12)

#### What's Changed

-   Add methods to allow trying to allocate in the `HeaderMap`, returning an error if oversize instead of panicking.
-   Fix `HeaderName::from_lowercase` that could allow NUL bytes in some cases.

### [`v0.2.11`](https://github.com/hyperium/http/releases/tag/v0.2.11)

[Compare Source](https://github.com/hyperium/http/compare/v0.2.10...v0.2.11)

#### What's Changed

-   Fix MIRI warnings in `HeaderMap::iter()`.

### [`v0.2.10`](https://github.com/hyperium/http/blob/HEAD/CHANGELOG.md#0210-November-10-2023)

[Compare Source](https://github.com/hyperium/http/compare/v0.2.9...v0.2.10)

-   Fix parsing of `Authority` to handle square brackets in incorrect order.
-   Fix `HeaderMap::with_capacity()` to handle arithmetic overflow.

</details>

<details>
<summary>hyperium/http-body (http-body)</summary>

### [`v1.0.0`](https://github.com/hyperium/http-body/compare/v0.4.6...v1.0.0)

[Compare Source](https://github.com/hyperium/http-body/compare/v0.4.6...v1.0.0)

### [`v0.4.6`](https://github.com/hyperium/http-body/compare/v0.4.5...v0.4.6)

[Compare Source](https://github.com/hyperium/http-body/compare/v0.4.5...v0.4.6)

</details>

<details>
<summary>hyperium/hyper (hyper)</summary>

### [`v1.3.1`](https://github.com/hyperium/hyper/blob/HEAD/CHANGELOG.md#v131-2024-04-16)

[Compare Source](https://github.com/hyperium/hyper/compare/v1.3.0...v1.3.1)

##### Bug Fixes

-   **client:** revert auto content-length header for some requests ([#&#8203;3633](https://github.com/hyperium/hyper/issues/3633))

### [`v1.3.0`](https://github.com/hyperium/hyper/blob/HEAD/CHANGELOG.md#v130-2024-04-15)

[Compare Source](https://github.com/hyperium/hyper/compare/v1.2.0...v1.3.0)

##### Bug Fixes

-   **client:** send content-length even with no body ([172fdfaf](https://github.com/hyperium/hyper/commit/172fdfaf0e0d9222917f271a83339238082e2657))
-   **http2:**
    -   `max_header_list_size(num)` defaults to 16kb ([203d1b09](https://github.com/hyperium/hyper/commit/203d1b090d0d0349c7e373e881ac4ddba72129be))
    -   `initial_max_send_streams` defaults to 100 ([2d1bd708](https://github.com/hyperium/hyper/commit/2d1bd7085e37a55ed6393f0e3f1b9a0b06db4d5d))
-   **server:**
    -   avoid unwrapping for the `Future` impl of HTTP/1 `UpgradeableConnection` ([#&#8203;3627](https://github.com/hyperium/hyper/issues/3627)) ([b79be911](https://github.com/hyperium/hyper/commit/b79be911696f6a93e8d408080ebbf558b612ce3c), closes [#&#8203;3621](https://github.com/hyperium/hyper/issues/3621))
    -   avoid  `graceful_shutdown` panic on upgraded H1 connection ([#&#8203;3616](https://github.com/hyperium/hyper/issues/3616)) ([6ecf8521](https://github.com/hyperium/hyper/commit/6ecf85218fb24531184c53d5ed0eb7caf13cdcef))

##### Features

-   **client:**
    -   add `max_header_list_size(num)` to `http2::Builder`. ([1c5b1b87](https://github.com/hyperium/hyper/commit/1c5b1b87ae1497a702e30ea82a486fb61a3f8133))
    -   add `max_pending_accept_reset_streams` HTTP2 option ([#&#8203;3617](https://github.com/hyperium/hyper/issues/3617)) ([330ddf1d](https://github.com/hyperium/hyper/commit/330ddf1de1ca2841469d30d24143902e5ff06365))
-   **ext:** implement From ReasonPhrase for Bytes ([dc27043a](https://github.com/hyperium/hyper/commit/dc27043aa319c0e630b7385a36aca0f3bee70670))
-   **service:** expose Service and HttpService trait unconditionally ([6aee2e6e](https://github.com/hyperium/hyper/commit/6aee2e6e260e7d407256d6b7da6a0d90c1bb9c67))
-   **server:** relax `'static` from connection IO trait bounds  ([#&#8203;3595](https://github.com/hyperium/hyper/issues/3595)) ([0013bdda](https://github.com/hyperium/hyper/commit/0013bdda5cd34ed6fca089eceb0133395b7be041))

### [`v1.2.0`](https://github.com/hyperium/hyper/blob/HEAD/CHANGELOG.md#v120-2024-02-21)

[Compare Source](https://github.com/hyperium/hyper/compare/v1.1.0...v1.2.0)

##### Bug Fixes

-   **http2:** typo in trace logging ([#&#8203;3536](https://github.com/hyperium/hyper/issues/3536)) ([79862ec2](https://github.com/hyperium/hyper/commit/79862ec2e84c32122c820958ceec06d8b7701ff7))
-   **rt:** `Sleep::downcast_mut_pin()` no longer extend lifetime ([7206fe30](https://github.com/hyperium/hyper/commit/7206fe30302937075c51c16a69d1eb3bbce6a671), closes [#&#8203;3556](https://github.com/hyperium/hyper/issues/3556))

##### Features

-   **http1:** support configurable `max_headers(num)` to client and server ([#&#8203;3523](https://github.com/hyperium/hyper/issues/3523)) ([b1142448](https://github.com/hyperium/hyper/commit/b114244898828e9fb254bea1f0bbdd24850b2f3f))
-   **http2:**
    -   add config for `max_local_error_reset_streams` in server ([#&#8203;3530](https://github.com/hyperium/hyper/issues/3530)) ([d7680e30](https://github.com/hyperium/hyper/commit/d7680e30e48926a5a3f94a0986d39181d5ab2218))
    -   add `initial_max_send_streams` method to HTTP/2 client builder ([#&#8203;3524](https://github.com/hyperium/hyper/issues/3524)) ([fdfa60d9](https://github.com/hyperium/hyper/commit/fdfa60d9fafb8a6bfb40acc4042ee54a2b9aad32))
    -   add `max_pending_accept_reset_streams(num)` back to HTTP/2 server builder ([#&#8203;3507](https://github.com/hyperium/hyper/issues/3507) ([a9fa893f](https://github.com/hyperium/hyper/commit/a9fa893f18c6409abae2e1dcbba0f4487df54d4f))

##### 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](https://github.com/hyperium/hyper/commit/7206fe30302937075c51c16a69d1eb3bbce6a671))

### [`v1.1.0`](https://github.com/hyperium/hyper/blob/HEAD/CHANGELOG.md#v110-2023-12-18)

[Compare Source](https://github.com/hyperium/hyper/compare/v1.0.1...v1.1.0)

##### Bug Fixes

-   **http1:**
    -   add internal limit for chunked extensions ([#&#8203;3495](https://github.com/hyperium/hyper/issues/3495)) ([d71ff962](https://github.com/hyperium/hyper/commit/d71ff962b08aca2f1c9c1724dfdab5bc1ec6ecd2))
    -   reject chunked headers missing a digit ([#&#8203;3494](https://github.com/hyperium/hyper/issues/3494)) ([82915386](https://github.com/hyperium/hyper/commit/829153865a4d2bbb52227183c8857e57dc3e231b))

##### Features

-   **client:** add `http1::Connection` `without_shutdown()` method ([#&#8203;3430](https://github.com/hyperium/hyper/issues/3430)) ([210bfaa7](https://github.com/hyperium/hyper/commit/210bfaa711b5da1f6756582a2e4bc3e229924800))
-   **http1:** Add support for sending HTTP/1.1 Chunked Trailer Fields ([#&#8203;3375](https://github.com/hyperium/hyper/issues/3375)) ([31b41807](https://github.com/hyperium/hyper/commit/31b41807523370f3efbf47ba16c9e1c193b6335a), closes [#&#8203;2719](https://github.com/hyperium/hyper/issues/2719))
-   **server:** expose `server::conn::http1::UpgradeableConnection` ([#&#8203;3457](https://github.com/hyperium/hyper/issues/3457)) ([6e3042a8](https://github.com/hyperium/hyper/commit/6e3042a86f10359624857d31bc9e876f521aee42))

##### v1.0.1 (2023-11-16)

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> ([#&#8203;3413](https://github.com/hyperium/hyper/issues/3413)) ([dd6d81ca](https://github.com/hyperium/hyper/commit/dd6d81ca4a180695dc70d6c9b2aececd29606224), closes [#&#8203;3412](https://github.com/hyperium/hyper/issues/3412))

##### Features

-   **rt:** Make ReadBuf::new public ([7161f562](https://github.com/hyperium/hyper/commit/7161f56274a30bfbe4a718bbe21d35beaf86b00b))

##### 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](https://github.com/hyperium/hyper/commit/dd6d81ca4a180695dc70d6c9b2aececd29606224))

### [`v1.0.1`](https://github.com/hyperium/hyper/blob/HEAD/CHANGELOG.md#v101-2023-11-16)

[Compare Source](https://github.com/hyperium/hyper/compare/v1.0.0...v1.0.1)

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> ([#&#8203;3413](https://github.com/hyperium/hyper/issues/3413)) ([dd6d81ca](https://github.com/hyperium/hyper/commit/dd6d81ca4a180695dc70d6c9b2aececd29606224), closes [#&#8203;3412](https://github.com/hyperium/hyper/issues/3412))

##### Features

-   **rt:** Make ReadBuf::new public ([7161f562](https://github.com/hyperium/hyper/commit/7161f56274a30bfbe4a718bbe21d35beaf86b00b))

##### 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](https://github.com/hyperium/hyper/commit/dd6d81ca4a180695dc70d6c9b2aececd29606224))

### [`v1.0.0`](https://github.com/hyperium/hyper/blob/HEAD/CHANGELOG.md#v100-2023-11-15)

[Compare Source](https://github.com/hyperium/hyper/compare/v0.14.29...v1.0.0)

Be sure to check out the [upgrading guide](https://hyper.rs/guides/1/upgrading).

##### Bug Fixes

-   **client:**
    -   avoid double-polling a Select future ([#&#8203;3290](https://github.com/hyperium/hyper/issues/3290)) ([fece9f7f](https://github.com/hyperium/hyper/commit/fece9f7f50431cf9533cfe7106b53a77b48db699), closes [#&#8203;3289](https://github.com/hyperium/hyper/issues/3289))
    -   early server response shouldn't propagate NO_ERROR ([#&#8203;3275](https://github.com/hyperium/hyper/issues/3275)) ([194e6f98](https://github.com/hyperium/hyper/commit/194e6f984763f5dc1c376082170a85cc4db40ce4), closes [#&#8203;2872](https://github.com/hyperium/hyper/issues/2872))
    -   remove Send bounds for request `Body` ([#&#8203;3266](https://github.com/hyperium/hyper/issues/3266)) ([4ace340b](https://github.com/hyperium/hyper/commit/4ace340bb00a2ffe8ec93e4955989eb69f29d531), closes [#&#8203;3184](https://github.com/hyperium/hyper/issues/3184))
-   **ffi:** fix deadlock in `hyper_executor::poll_next` ([#&#8203;3370](https://github.com/hyperium/hyper/issues/3370)) ([0c7d03ef](https://github.com/hyperium/hyper/commit/0c7d03eff2f2433e4f4a0a768009d97e1a7858fd), closes [#&#8203;3369](https://github.com/hyperium/hyper/issues/3369))
-   **http2:**
    -   don't send keep-alive ping when idle ([#&#8203;3381](https://github.com/hyperium/hyper/issues/3381)) ([429ad8a3](https://github.com/hyperium/hyper/commit/429ad8a34b20a877b4d17df1f4991a193f4a56f0))
    -   change default server max concurrent streams to 200 ([#&#8203;3362](https://github.com/hyperium/hyper/issues/3362)) ([dd638b5b](https://github.com/hyperium/hyper/commit/dd638b5b34225d2c5ad0bd01de0ecf738f9a0e12), closes [#&#8203;3358](https://github.com/hyperium/hyper/issues/3358))
-   **server:** Respect Expect header only when http proto > 1.0 ([#&#8203;3294](https://github.com/hyperium/hyper/issues/3294)) ([43d2f5c6](https://github.com/hyperium/hyper/commit/43d2f5c6cfd575f7259a5b3684f7e99cedbd0edb))

##### Features

-   **client:** allow `!Send` IO with HTTP/1 client ([#&#8203;3371](https://github.com/hyperium/hyper/issues/3371)) ([cf87eda8](https://github.com/hyperium/hyper/commit/cf87eda82ca0af1f5f45b0a0710eaae9ec1aed7b), closes [#&#8203;3363](https://github.com/hyperium/hyper/issues/3363))
-   **error:**
    -   `Error::source()` is purposefully unspecified ([#&#8203;3318](https://github.com/hyperium/hyper/issues/3318)) ([502a6450](https://github.com/hyperium/hyper/commit/502a645053b0d19252d9fdc170b0a2c0a6fe0ba6), closes [#&#8203;2843](https://github.com/hyperium/hyper/issues/2843))
    -   change `Display for Error` to only print top error ([#&#8203;3312](https://github.com/hyperium/hyper/issues/3312)) ([50f123af](https://github.com/hyperium/hyper/commit/50f123afc0e6c289030bf8699dbec826dc47572c), closes [#&#8203;2844](https://github.com/hyperium/hyper/issues/2844))
-   **ext:**
    -   make `ReasonPhrase::from_static` a const fn ([d4a61e3d](https://github.com/hyperium/hyper/commit/d4a61e3da87a08a25772cd3aa2f503cb4346c81f))
    -   remove `ReasonPhrase::from_bytes_unchecked()` method ([4021c57b](https://github.com/hyperium/hyper/commit/4021c57bd9265b9ebc5b88c9bffbb0ac3704bdbe))
-   **lib:**
    -   update to `http` 1.0 ([899e92a5](https://github.com/hyperium/hyper/commit/899e92a580961c5bd1cc9b49a8fb7c7cd8b53ef8))
    -   missing Timer will warn or panic ([f3308c04](https://github.com/hyperium/hyper/commit/f3308c044d402dfad448bbc0497b14c69a8f22f2), closes [#&#8203;3393](https://github.com/hyperium/hyper/issues/3393))
    -   increase MSRV to 1.63 ([#&#8203;3293](https://github.com/hyperium/hyper/issues/3293)) ([e68dc961](https://github.com/hyperium/hyper/commit/e68dc961a7dad0a96e16898b0da234927564c079))
-   **rt:** rename to `Http2ClientConnExec` and `Http2ServerConnExec` ([52b27faa](https://github.com/hyperium/hyper/commit/52b27faa09715b5835804de7abf6998e028736fc))
-   **server:** default `http1` `header_read_timeout` to 30 seconds ([8bf26d1e](https://github.com/hyperium/hyper/commit/8bf26d1e394a8f207debe45445a5fb85cc349238))
-   **upgrade:** introduce tracing as an optional unstable feature ([#&#8203;3326](https://github.com/hyperium/hyper/issues/3326)) ([da3fc76c](https://github.com/hyperium/hyper/commit/da3fc76c06b6caa60f6abc1da570d56d7c8fa468), closes [#&#8203;3319](https://github.com/hyperium/hyper/issues/3319))

##### Breaking Changes

-   Upgrade to `http` 1.0.

([899e92a5](https://github.com/hyperium/hyper/commit/899e92a580961c5bd1cc9b49a8fb7c7cd8b53ef8))

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

([52b27faa](https://github.com/hyperium/hyper/commit/52b27faa09715b5835804de7abf6998e028736fc))

-   If you use client HTTP/1 upgrades, you must call
    `Connection::with_upgrades()` to still work the same.
    ([cf87eda8](https://github.com/hyperium/hyper/commit/cf87eda82ca0af1f5f45b0a0710eaae9ec1aed7b))
-   HTTP/2 server builder now has a default max concurrent streams. This is a
    behavior change. Consider setting your own maximum.
    ([dd638b5b](https://github.com/hyperium/hyper/commit/dd638b5b34225d2c5ad0bd01de0ecf738f9a0e12))
-   Do not build any logic depending on the exact types of
    an `Error::source()`. They are only for debugging.
    ([502a6450](https://github.com/hyperium/hyper/commit/502a645053b0d19252d9fdc170b0a2c0a6fe0ba6))
-   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](https://github.com/hyperium/hyper/commit/50f123afc0e6c289030bf8699dbec826dc47572c))
-   The `ReasonPhrase::from_bytes_unchecked()` method is
    gone. Use `from_static()` or `TryFrom` to construct one.

([4021c57b](https://github.com/hyperium/hyper/commit/4021c57bd9265b9ebc5b88c9bffbb0ac3704bdbe))

##### v1.0.0-rc.4 (2023-07-10)

##### Bug Fixes

-   **http1:**
    -   http1 server graceful shutdown fix ([#&#8203;3261](https://github.com/hyperium/hyper/issues/3261)) ([f4b51300](https://github.com/hyperium/hyper/commit/f4b513009d81083081d1c60c1981847bbb17dd5d))
    -   send error on Incoming body when connection errors ([#&#8203;3256](https://github.com/hyperium/hyper/issues/3256)) ([52f19259](https://github.com/hyperium/hyper/commit/52f192593fb9ebcf6d3894e0c85cbf710da4decd), closes [#&#8203;3253](https://github.com/hyperium/hyper/issues/3253))
    -   properly end chunked bodies when it was known to be empty ([#&#8203;3254](https://github.com/hyperium/hyper/issues/3254)) ([fec64cf0](https://github.com/hyperium/hyper/commit/fec64cf0abdc678e30ca5f1b310c5118b2e01999), closes [#&#8203;3252](https://github.com/hyperium/hyper/issues/3252))

##### Features

-   **client:** Make clients able to use non-Send executor ([#&#8203;3184](https://github.com/hyperium/hyper/issues/3184)) ([d977f209](https://github.com/hyperium/hyper/commit/d977f209bc6068d8f878b22803fc42d90c887fcc), closes [#&#8203;3017](https://github.com/hyperium/hyper/issues/3017))
-   **rt:**
    -   replace IO traits with hyper::rt ones ([#&#8203;3230](https://github.com/hyperium/hyper/issues/3230)) ([f9f65b7a](https://github.com/hyperium/hyper/commit/f9f65b7aa67fa3ec0267fe015945973726285bc2), closes [#&#8203;3110](https://github.com/hyperium/hyper/issues/3110))
    -   add downcast on `Sleep` trait ([#&#8203;3125](https://github.com/hyperium/hyper/issues/3125)) ([d92d3917](https://github.com/hyperium/hyper/commit/d92d3917d950e4c61c37c2170f3ce273d2a0f7d1), closes [#&#8203;3027](https://github.com/hyperium/hyper/issues/3027))
-   **service:** change Service::call to take \&self ([#&#8203;3223](https://github.com/hyperium/hyper/issues/3223)) ([d894439e](https://github.com/hyperium/hyper/commit/d894439e009aa75103f6382a7ba98fb17da72f02), closes [#&#8203;3040](https://github.com/hyperium/hyper/issues/3040))

##### Breaking Changes

-   Any IO transport type provided must not 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](https://github.com/hyperium/hyper/commit/f9f65b7aa67fa3ec0267fe015945973726285bc2))
-   `client::conn::http2` types now use another generic for an `Executor`.
    Code that names `Connection` needs to include the additional generic parameter.
    ([d977f209](https://github.com/hyperium/hyper/commit/d977f209bc6068d8f878b22803fc42d90c887fcc))
-   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](https://github.com/hyperium/hyper/commit/d894439e009aa75103f6382a7ba98fb17da72f02))

##### v1.0.0-rc.3 (2023-02-23)

##### Bug Fixes

-   **server:** prevent sending 100-continue if user drops request body ([#&#8203;3137](https://github.com/hyperium/hyper/issues/3137)) ([499fe1f9](https://github.com/hyperium/hyper/commit/499fe1f949895218c4fd2305a0eddaf24f1dd0a9))

##### Features

-   **client:**
    -   add `is_ready()` and `is_closed()` methods to `SendRequest` ([#&#8203;3148](https://github.com/hyperium/hyper/issues/3148)) ([3fb59919](https://github.com/hyperium/hyper/commit/3fb59919941d3145be6d84dab85d222ea0e7664b))
    -   `http2` builder now requires an `Executor` ([#&#8203;3135](https://github.com/hyperium/hyper/issues/3135)) ([8068aa01](https://github.com/hyperium/hyper/commit/8068aa011f6477a21ad54230c8fef9e26b330503), closes [#&#8203;3128](https://github.com/hyperium/hyper/issues/3128))
    -   remove unneeded HTTP/1 executor ([#&#8203;3108](https://github.com/hyperium/hyper/issues/3108)) ([1de9accf](https://github.com/hyperium/hyper/commit/1de9accf1e133d1a23311879f466251b2f6481e5))
-   **rt:** make private executor traits public (but sealed) in `rt::bounds` ([#&#8203;3127](https://github.com/hyperium/hyper/issues/3127)) ([fc9f3070](https://github.com/hyperium/hyper/commit/fc9f30701a159772d0c014de47d16798502bae2c), closes [#&#8203;2051](https://github.com/hyperium/hyper/issues/2051), [#&#8203;3097](https://github.com/hyperium/hyper/issues/3097))

##### Breaking Changes

-   `hyper::client::conn::Http2::Builder::new` now requires an executor argument.
    ([8068aa01](https://github.com/hyperium/hyper/commit/8068aa011f6477a21ad54230c8fef9e26b330503))
-   The method
    `hyper::client::conn::http1::Builder::executor()` is removed, since it did nothing.
    ([1de9accf](https://github.com/hyperium/hyper/commit/1de9accf1e133d1a23311879f466251b2f6481e5))

##### v1.0.0-rc.2 (2022-12-29)

##### Bug Fixes

-   **client:** send an error back to client when dispatch misbehaves () ([75aac9f4](https://github.com/hyperium/hyper/commit/75aac9f47fe0246016e6133cd3cfa35b63c8904e), closes [#&#8203;2649](https://github.com/hyperium/hyper/issues/2649))
-   **http2:** Fix race condition in client dispatcher ([#&#8203;3041](https://github.com/hyperium/hyper/issues/3041)) ([f202230c](https://github.com/hyperium/hyper/commit/f202230c6fa274f6a4e6cbaad57ca59beb0a5125))

##### Features

-   **body:** upgrade to http-body 1.0.0-rc.2 ([#&#8203;3106](https://github.com/hyperium/hyper/issues/3106)) ([51b45e3f](https://github.com/hyperium/hyper/commit/51b45e3f8580da5667a45395e6622455b10e2ad3))
-   **client:**
    -   remove http2\_ prefixes from `client::conn::http2::Builder` methods ([669df217](https://github.com/hyperium/hyper/commit/669df2173e059544fbaded0d666c5bfc113eaa0e))
    -   remove http1\_ prefixes from `client::conn::http1::Builder` methods ([4cbaef79](https://github.com/hyperium/hyper/commit/4cbaef79f0ec03643c09e4e6fbbed23bf589e548))
    -   implement `Clone` for `http2::SendRequest` ([#&#8203;3042](https://github.com/hyperium/hyper/issues/3042)) ([00ea49e4](https://github.com/hyperium/hyper/commit/00ea49e47a565748a4e4657f7047dca5851f8b7a), closes [#&#8203;3036](https://github.com/hyperium/hyper/issues/3036))
    -   allow ignoring HTTP/1 invalid header lines in requests ([81e25fa8](https://github.com/hyperium/hyper/commit/81e25fa868c86e4ea81d5a96fdca497a4b1ab3c1))
-   **rt:** Clean up Timer trait ([#&#8203;3037](https://github.com/hyperium/hyper/issues/3037)) ([8790fee7](https://github.com/hyperium/hyper/commit/8790fee74937016e6b288493bc62c61f7866c310), closes [#&#8203;3028](https://github.com/hyperium/hyper/issues/3028))
-   **server:**
    -   remove http1\_ method prefixes from `server::conn::http2::Builder` ([291ed0b4](https://github.com/hyperium/hyper/commit/291ed0b49bc7fd6f43890815cdf93aaefaf59011))
    -   remove http1\_ method prefixes from `server::conn::http2::Builder` ([48e70c69](https://github.com/hyperium/hyper/commit/48e70c691e44d5e37d4b51fe8980f76d27c989b3))
    -   remove `server::conn::http2::Builder::with_executor()` ([#&#8203;3089](https://github.com/hyperium/hyper/issues/3089)) ([ab59a6f7](https://github.com/hyperium/hyper/commit/ab59a6f7a1e654b1607744320de5f8477de5d6c8), closes [#&#8203;3087](https://github.com/hyperium/hyper/issues/3087))

##### Breaking Changes

-   removes `server::conn::http2::Builder::with_executor()`
    ([ab59a6f7](https://github.com/hyperium/hyper/commit/ab59a6f7a1e654b1607744320de5f8477de5d6c8))
-   The return types of `Timer` have been changed.
    ([8790fee7](https://github.com/hyperium/hyper/commit/8790fee74937016e6b288493bc62c61f7866c310))
-   The return types for `Frame::into_data()` and `Frame::into_trailers()` have been changed from `Option<T>` to `Result<T, Self>`.

##### v1.0.0-rc.1 (2022-10-25)

##### Bug Fixes

-   **http1:**
    -   trim obs-folded headers when unfolding ([#&#8203;2926](https://github.com/hyperium/hyper/issues/2926)) ([d4b5bd4e](https://github.com/hyperium/hyper/commit/d4b5bd4ee6af0ae8924cf05ab799cc3e19a3c62d))

##### Features

-   **body:**
    -   rename `Body` struct to `Incoming` ([#&#8203;3022](https://github.com/hyperium/hyper/issues/3022)) ([95a153bb](https://github.com/hyperium/hyper/commit/95a153bbc2717bd4233486e09848622ceb900574), closes [#&#8203;2971](https://github.com/hyperium/hyper/issues/2971))
    -   update `HttpBody` trait to use `Frame`s ([#&#8203;3020](https://github.com/hyperium/hyper/issues/3020)) ([0888623d](https://github.com/hyperium/hyper/commit/0888623d3764e887706d4e38f82f0fb57c50bd1a), closes [#&#8203;3010](https://github.com/hyperium/hyper/issues/3010))
    -   make body::Sender and Body::channel private ([#&#8203;2970](https://github.com/hyperium/hyper/issues/2970)) ([d963e6a9](https://github.com/hyperium/hyper/commit/d963e6a9504575116f63df2485d8480fdb9b6f0b), closes [#&#8203;2962](https://github.com/hyperium/hyper/issues/2962))
    -   remove "full" constructors from `Body` ([#&#8203;2958](https://github.com/hyperium/hyper/issues/2958)) ([9e8fc8fc](https://github.com/hyperium/hyper/commit/9e8fc8fca195f470a82be5bfb2fd8019c044b97a))
-   **client:**
    -   remove `client::conn::{SendRequest, Connection}` ([#&#8203;2987](https://github.com/hyperium/hyper/issues/2987)) ([8ae73cac](https://github.com/hyperium/hyper/commit/8ae73cac6a8f6a61944505c121158dc312e7b68f))
    -   remove `client::connect` module ([#&#8203;2949](https://github.com/hyperium/hyper/issues/2949)) ([5e206883](https://github.com/hyperium/hyper/commit/5e206883984fe6de2812861ec363964d92b89b06))
    -   remove higher-level `hyper::Client` ([#&#8203;2941](https://github.com/hyperium/hyper/issues/2941)) ([bb3af17c](https://github.com/hyperium/hyper/commit/bb3af17ce1a3841e9170adabcce595c7c8743ea7))
    -   remove `hyper::client::server` ([#&#8203;2940](https://github.com/hyperium/hyper/issues/2940)) ([889fa2d8](https://github.com/hyperium/hyper/commit/889fa2d87252108eb7668b8bf034ffcc30985117))
    -   introduce version-specific client modules ([#&#8203;2906](https://github.com/hyperium/hyper/issues/2906)) ([509672aa](https://github.com/hyperium/hyper/commit/509672aada0af68a91d963e69828c6e31c44cb7b))
-   **ffi:** add http1\_allow_multiline_headers ([#&#8203;2918](https://github.com/hyperium/hyper/issues/2918)) ([09e35668](https://github.com/hyperium/hyper/commit/09e35668e5b094d679efb4b98ecde9cb6f9f2f93))
-   **lib:** remove `stream` cargo feature ([#&#8203;2896](https://github.com/hyperium/hyper/issues/2896)) ([ce72f734](https://github.com/hyperium/hyper/commit/ce72f73464d96fd67b59ceff08fd424733b43ffa), closes [#&#8203;2855](https://github.com/hyperium/hyper/issues/2855))
-   **rt:** add Timer trait ([#&#8203;2974](https://github.com/hyperium/hyper/issues/2974)) ([fae97ced](https://github.com/hyperium/hyper/commit/fae97ced3a1f71fc46b6eadd3313e19705cc0006))
-   **server:**
    -   remove `server::conn::{Http, Connection}` types ([#&#8203;3013](https://github.com/hyperium/hyper/issues/3013)) ([0766d3f7](https://github.com/hyperium/hyper/commit/0766d3f78d116ea243222cea134cfe7f418e6a3c), closes [#&#8203;3012](https://github.com/hyperium/hyper/issues/3012))
    -   `server::conn::http1` and `server::conn::http2` modules ([#&#8203;3011](https://github.com/hyperium/hyper/issues/3011)) ([fc4d3356](https://github.com/hyperium/hyper/commit/fc4d3356cb7f2fffff5af9c474fa34c5adc5d6f1), closes [#&#8203;2851](https://github.com/hyperium/hyper/issues/2851))
    -   remove the high-level Server API ([#&#8203;2932](https://github.com/hyperium/hyper/issues/2932)) ([3c7bef3b](https://github.com/hyperium/hyper/commit/3c7bef3b6f6b6c3ec780e5e2db12c9d5795c1b80))
    -   remove `AddrStream` struct ([#&#8203;2869](https://github.com/hyperium/hyper/issues/2869)) ([e9cab49e](https://github.com/hyperium/hyper/commit/e9cab49e6e18f712b94137966580f6756e32fabb), closes [#&#8203;2850](https://github.com/hyperium/hyper/issues/2850))
-   **service:** create own `Service` trait ([#&#8203;2920](https://github.com/hyperium/hyper/issues/2920)) ([fee7d361](https://github.com/hyperium/hyper/commit/fee7d361c28c7eb42ef6bbfae0db14028d24bfee), closes [#&#8203;2853](https://github.com/hyperium/hyper/issues/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](https://github.com/hyperium/hyper/commit/0888623d3764e887706d4e38f82f0fb57c50bd1a))
-   Either choose a version-specific `Connection` type, or
    look for the auto-version type in `hyper-util`.
    ([0766d3f7](https://github.com/hyperium/hyper/commit/0766d3f78d116ea243222cea134cfe7f418e6a3c))
-   Pick a version-specific connection, or use the combined
    one in `hyper-util`.
    ([8ae73cac](https://github.com/hyperium/hyper/commit/8ae73cac6a8f6a61944505c121158dc312e7b68f))
-   Change any manual `impl tower::Service` to implement `hyper::service::Service` instead. The `poll_ready` method has been removed.
    ([fee7d361](https://github.com/hyperium/hyper/commit/fee7d361c28c7eb42ef6bbfae0db14028d24bfee))
-   The trait has been renamed.
    ([031454e5](https://github.com/hyperium/hyper/commit/031454e5e647dda0648424a944dbef795505e2e4))
-   A channel body will be available in `hyper-util`.
    ([d963e6a9](https://github.com/hyperium/hyper/commit/d963e6a9504575116f63df2485d8480fdb9b6f0b))
-   Use the types from `http-body-util`.
    ([9e8fc8fc](https://github.com/hyperium/hyper/commit/9e8fc8fca195f470a82be5bfb2fd8019c044b97a))
-   Use `connect` from `hyper-util`.
    ([5e206883](https://github.com/hyperium/hyper/commit/5e206883984fe6de2812861ec363964d92b89b06))
-   A pooling client is in the hyper-util crate.
    ([bb3af17c](https://github.com/hyperium/hyper/commit/bb3af17ce1a3841e9170adabcce595c7c8743ea7))
-   Tower `Service` utilities will exist in `hyper-util`.
    ([889fa2d8](https://github.com/hyperium/hyper/commit/889fa2d87252108eb7668b8bf034ffcc30985117))

##### v0.14.19 (2022-05-27)

##### Bug Fixes

-   **http1:** fix preserving header case without enabling ffi ([#&#8203;2820](https://github.com/hyperium/hyper/issues/2820)) ([6a35c175](https://github.com/hyperium/hyper/commit/6a35c175f2b416851518b5831c2c7827d6dbd822))
-   **server:** don't add implicit content-length to HEAD responses ([#&#8203;2836](https://github.com/hyperium/hyper/issues/2836)) ([67b73138](https://github.com/hyperium/hyper/commit/67b73138f110979f3c77ef7b56588f018837e592))

##### Features

-   **server:**
    -   add `Connection::http2_max_header_list_size` option ([#&#8203;2828](https://github.com/hyperium/hyper/issues/2828)) ([a32658c1](https://github.com/hyperium/hyper/commit/a32658c1ae7f1261fa234a767df963be4fc63521), closes [#&#8203;2826](https://github.com/hyperium/hyper/issues/2826))
    -   add `AddrStream::local_addr()` ([#&#8203;2816](https://github.com/hyperium/hyper/issues/2816)) ([ffbf610b](https://github.com/hyperium/hyper/commit/ffbf610b1631cabfacb20886270e3c137fa93800), closes [#&#8203;2773](https://github.com/hyperium/hyper/issues/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](https://github.com/hyperium/hyper/commit/78de8914eadeab4b9a2c71a82c77b2ce33fe6c74))

##### v0.14.18 (2022-03-22)

##### Bug Fixes

-   **ffi:** don't build C libraries by default ([1c663706](https://github.com/hyperium/hyper/commit/1c6637060e36654ddb2fdfccb0d146c7ad527476))

##### Features

-   **client:** add `HttpInfo::local_addr()` method ([055b4e7e](https://github.com/hyperium/hyper/commit/055b4e7ea6bd22859c20d60776b0c8f20d27498e), closes [#&#8203;2767](https://github.com/hyperium/hyper/issues/2767))

##### v0.14.17 (2022-02-10)

##### Bug Fixes

-   **client:** avoid panics in uses of `Instant` ([#&#8203;2746](https://github.com/hyperium/hyper/issues/2746)) ([dcdd6d10](https://github.com/hyperium/hyper/commit/dcdd6d109069949ee68ba70ece4a2b4f21079479))

##### Features

-   **client:** implement the HTTP/2 extended CONNECT protocol from RFC 8441 ([#&#8203;2682](https://github.com/hyperium/hyper/issues/2682)) ([5ec094ca](https://github.com/hyperium/hyper/commit/5ec094caa5c999e6f919a2bc82f5f3b7d40c2d8a))
-   **error:** add `Error::message` ([#&#8203;2737](https://github.com/hyperium/hyper/issues/2737)) ([6932896a](https://github.com/hyperium/hyper/commit/6932896a7fca58fe461269461f925da8fd4e8d8a), closes [#&#8203;2732](https://github.com/hyperium/hyper/issues/2732))
-   **http1:** implement obsolete line folding ([#&#8203;2734](https://github.com/hyperium/hyper/issues/2734)) ([1f0c177b](https://github.com/hyperium/hyper/commit/1f0c177b35b14054eb1e5108e75f8bd3ff52813e))

##### v0.14.16 (2021-12-09)

##### Bug Fixes

-   **http1:** return 414 when URI contains more than 65534 characters ([#&#8203;2706](https://github.com/hyperium/hyper/issues/2706)) ([5f938fff](https://github.com/hyperium/hyper/commit/5f938fffa64df23a2e4af81ed4e6d8bd760e2d05), closes [#&#8203;2701](https://github.com/hyperium/hyper/issues/2701))
-   **http2:** received `Body::size_hint()` now return 0 if implicitly empty ([#&#8203;2715](https://github.com/hyperium/hyper/issues/2715)) ([84b78b6c](https://github.com/hyperium/hyper/commit/84b78b6c877ff9aaa28d1e348a5deb63a9282503))
-   **server:** use case-insensitive comparison for Expect: 100-continue ([#&#8203;2709](https://github.com/hyperium/hyper/issues/2709)) ([7435cc33](https://github.com/hyperium/hyper/commit/7435cc3399895643062f4e399fae6d5b20b049a1), closes [#&#8203;2708](https://github.com/hyperium/hyper/issues/2708))

##### Features

-   **http2:** add `http2_max_send_buf_size` option to client and server ([bff977b7](https://github.com/hyperium/hyper/commit/bff977b73ca8d737f5492c86c09fd64735c45461))
-   **server:** add HTTP/1 header read timeout option ([#&#8203;2675](https://github.com/hyperium/hyper/issues/2675)) ([842c6553](https://github.com/hyperium/hyper/commit/842c6553a5414a3a4a0fbf973079200612a9c3d2), closes [#&#8203;2457](https://github.com/hyperium/hyper/issues/2457))

##### v0.14.15 (2021-11-16)

##### Bug Fixes

-   **client:** cancel blocking DNS lookup if `GaiFuture` is dropped ([174b553d](https://github.com/hyperium/hyper/commit/174b553d)

##### Features

-   **http1:** add `http1_writev(bool)` options to Client and Server builders, to allow forcing vectored writes ([80627141](https://github.com/hyperium/hyper/commit/80627141))
-   **upgrade:** allow http upgrades with any body type ([ab469eb3](https://github.com/hyperium/hyper/commit/ab469eb3c6cd5e7a035d734f3d21ff4d2d6a21ab))

##### v0.14.14 (2021-10-22)

##### Bug Fixes

-   **client:**
    -   make ResponseFuture implement Sync ([bd6c35b9](https://github.com/hyperium/hyper/commit/bd6c35b98f9513f14ed9cecad933bc7fdb8635ea))
    -   remove ipv6 square brackets before resolving ([910e0268](https://github.com/hyperium/hyper/commit/910e02687df3245aae4bc519fb0bd7eb6a34db7d))

##### Features

-   **h2:** always include original h2 error on broken pipe ([6169db25](https://github.com/hyperium/hyper/commit/6169db250c932dd012d391389826cd34833077b4))
-   **server:** Remove Send + Sync requirement for Body in with_graceful_shutdown ([1d553e52](https://github.com/hyperium/hyper/commit/1d553e52c6953ea3b039f5c3f89d35cb56e2436a))

##### v0.14.13 (2021-09-16)

##### Bug Fixes

-   **client:** don't reuse a connection while still flushing ([c88011da](https://github.com/hyperium/hyper/commit/c88011da4ed5b5ca9107c4a2339a7ab054c5f27f))
-   **server:** convert panic to error if Connection::without_shutdown called on HTTP/2 conn ([ea3e2282](https://github.com/hyperium/hyper/commit/ea3e228287e714b97aa44c840a487abd3a915e15))

##### Features

-   **ffi:** add hyper_request_set_uri_parts ([a54689b9](https://github.com/hyperium/hyper/commit/a54689b921ca16dd0f29b3f4a74feae60218db34))
-   **lib:**
    -   Export more things with Cargo features (server, !http1, !http2) ([0a4b56ac](https://github.com/hyperium/hyper/commit/0a4b56acb82ef41a3336f482b240c67c784c434f))
    -   Export rt module independently of Cargo features ([cf6f62c7](https://github.com/hyperium/hyper/commit/cf6f62c71eda3b3a8732d86387e4ed8711cf9a86))

##### v0.14.12 (2021-08-24)

##### Bug Fixes

-   **ffi:** on_informational callback had no headers ([39b6d01a](https://github.com/hyperium/hyper/commit/39b6d01aa0e520077bb25e16811f5ece00a224d6))
-   **http1:** apply header title case for consecutive dashes ([#&#8203;2613](https://github.com/hyperium/hyper/issues/2613)) ([684f2fa7](https://github.com/hyperium/hyper/commit/684f2fa76d44fa2b1b063ad0443a1b0d16dfad0e))
-   **http2:** improve errors emitted by HTTP2 `Upgraded` stream shutdown ([#&#8203;2622](https://github.com/hyperium/hyper/issues/2622)) ([be08648e](https://github.com/hyperium/hyper/commit/be08648e8298cdb13e9879ee761a73f827268962))

##### Features

-   **client:** expose http09 and http1 options on `client::conn::Builder` ([#&#8203;2611](https://github.com/hyperium/hyper/issues/2611)) ([73bff4e9](https://github.com/hyperium/hyper/commit/73bff4e98c372ce04b006370c0b0d2af29ea8718), closes [#&#8203;2461](https://github.com/hyperium/hyper/issues/2461))

##### v0.14.11 (2021-07-21)

##### Bug Fixes

-   **client:** retry when pool checkout returns closed HTTP2 connection ([#&#8203;2585](https://github.com/hyperium/hyper/issues/2585)) ([52214f39](https://github.com/hyperium/hyper/commit/52214f391c0a18dc66d1ccff9c0c004c5da85002))
-   **http2:**
    -   improve I/O errors emitted by H2Upgraded ([#&#8203;2598](https://github.com/hyperium/hyper/issues/2598)) ([f51c677d](https://github.com/hyperium/hyper/commit/f51c677dec9debf60cb336dc938bae103adf17a0))
    -   preserve `proxy-authenticate` and `proxy-authorization` headers ([#&#8203;2597](https://github.com/hyperium/hyper/issues/2597)) ([52435701](https://github.com/hyperium/hyper/commit/5243570137ae49628cb387fff5611eea0add33bf))

##### Features

-   **ffi:** add hyper_request_on_informational ([25d18c0b](https://github.com/hyperium/hyper/commit/25d18c0b74ccf9e51f986daa3b2b98c0109f827a))

##### v0.14.10 (2021-07-07)

##### Bug Fixes

-   **http1:**
    -   reject content-lengths that have a plus sign prefix ([06335158](https://github.com/hyperium/hyper/commit/06335158ca48724db9bf074398067d2db08613e7))
    -   protect against overflow in chunked decoder ([efd9a982](https://github.com/hyperium/hyper/commit/efd9a9821fd2f1ae04b545094de76a435b62e70f))

##### Features

-   **ffi:** add option to get raw headers from response ([8c89a8c1](https://github.com/hyperium/hyper/commit/8c89a8c1665b6fbec3f13b8c0e84c79464179c89))

##### v0.14.9 (2021-06-07)

##### Bug Fixes

-   **http1:** reduce memory used with flatten write strategy ([eb0c6463](https://github.com/hyperium/hyper/commit/eb0c64639503bbd4f6e3b1ce3a02bff8eeea7ee8))

##### v0.14.8 (2021-05-25)

##### Features

-   **client:** allow to config http2 max concurrent reset streams ([#&#8203;2535](https://github.com/hyperium/hyper/issues/2535)) ([b9916c41](https://github.com/hyperium/hyper/commit/b9916c410182c6225e857f0cded355ea1b74c865))
-   **error:** add `Error::is_parse_too_large` and `Error::is_parse_status` methods ([#&#8203;2538](https://github.com/hyperium/hyper/issues/2538)) ([960a69a5](https://github.com/hyperium/hyper/commit/960a69a5878ede82c56f50ac1444a9e75e885a8f))
-   **http2:**
    -   Implement Client and Server CONNECT support over HTTP/2 ([#&#8203;2523](https://github.com/hyperium/hyper/issues/2523)) ([5442b6fa](https://github.com/hyperium/hyper/commit/5442b6faddaff9aeb7c073031a3b7aa4497fda4d), closes [#&#8203;2508](https://github.com/hyperium/hyper/issues/2508))
    -   allow HTTP/2 requests by ALPN when http2\_only is unset ([#&#8203;2527](https://github.com/hyperium/hyper/issues/2527)) ([be9677a1](https://github.com/hyperium/hyper/commit/be9677a1e782d33c4402772e0fc4ef0a4c49d507))

##### Performance

-   **http2:** reduce amount of adaptive window pings as BDP stabilizes ([#&#8203;2550](https://github.com/hyperium/hyper/issues/2550)) ([4cd06bf2](https://github.com/hyperium/hyper/commit/4cd06bf2))

##### v0.14.7 (2021-04-22)

##### Bug Fixes

-   **http1:** http1\_title_case_headers should move Builder ([a303b3c3](https://github.com/hyperium/hyper/commit/a303b3c329e6b8ecfa1da0b9b9e94736628167e0))

##### Features

-   **server:** implement forgotten settings for case preserving ([4fd6c4cb](https://github.com/hyperium/hyper/commit/4fd6c4cb0b58bb0831ae0f876d858aba1588d0e3))

##### v0.14.6 (2021-04-21)

##### Features

-   **client:** add option to allow misplaced spaces in HTTP/1 responses ([#&#8203;2506](https://github.com/hyperium/hyper/issues/2506)) ([11345394](https://github.com/hyperium/hyper/commit/11345394d968d4817e1a0ee2550228ac0ae7ce74))
-   **http1:** add options to preserve header casing ([#&#8203;2480](https://github.com/hyperium/hyper/issues/2480)) ([dbea7716](https://github.com/hyperium/hyper/commit/dbea7716f157896bf7d2d417be7b4e382e7dc34f), closes [#&#8203;2313](https://github.com/hyperium/hyper/issues/2313))

##### v0.14.5 (2021-03-26)

##### Bug Fixes

-   **client:** omit default port from automatic Host headers ([#&#8203;2441](https://github.com/hyperium/hyper/issues/2441)) ([0b11eee9](https://github.com/hyperium/hyper/commit/0b11eee9bde421cdc1680cadabfd38c5aff8e62f))
-   **headers:** Support multiple Content-Length values on same line ([#&#8203;2471](https://github.com/hyperium/hyper/issues/2471)) ([48fdaf16](https://github.com/hyperium/hyper/commit/48fdaf160689f333e9bb63388d0b1d0fa29a1391), closes [#&#8203;2470](https://github.com/hyperium/hyper/issues/2470))
-   **server:** skip automatic Content-Length headers when not allowed ([#&#8203;2216](https://github.com/hyperium/hyper/issues/2216)) ([8cbf9527](https://github.com/hyperium/hyper/commit/8cbf9527dfb313b3f84fcd83260c5c72ce4a1beb), closes [#&#8203;2215](https://github.com/hyperium/hyper/issues/2215))

##### Features

-   **client:** allow HTTP/0.9 responses behind a flag ([#&#8203;2473](https://github.com/hyperium/hyper/issues/2473)) ([68d4e4a3](https://github.com/hyperium/hyper/commit/68d4e4a3db91fb43f41a8c4fce1175ddb56816af), closes [#&#8203;2468](https://github.com/hyperium/hyper/issues/2468))
-   **server:** add `AddrIncoming::from_listener` constructor ([#&#8203;2439](https://github.com/hyperium/hyper/issues/2439)) ([4c946af4](https://github.com/hyperium/hyper/commit/4c946af49cc7fbbc6bd4894283a654625c2ea383))

##### v0.14.4 (2021-02-05)

##### Bug Fixes

-   **build**: Fix compile error when only `http1` feature was enabled.

##### v0.14.3 (2021-02-05)

##### Bug Fixes

-   **client:** HTTP/1 client "Transfer-Encoding" repair code would panic ([#&#8203;2410](https://github.com/hyperium/hyper/issues/2410)) ([2c8121f1](https://github.com/hyperium/hyper/commit/2c8121f1735aa8efeb0d5e4ef595363c373ba470), closes [#&#8203;2409](https://github.com/hyperium/hyper/issues/2409))
-   **http1:** fix server misinterpreting multiple Transfer-Encoding headers ([8f93123e](https://github.com/hyperium/hyper/commit/8f93123efef5c1361086688fe4f34c83c89cec02))

##### Features

-   **body:**
    -   reexport `hyper::body::SizeHint` ([#&#8203;2404](https://github.com/hyperium/hyper/issues/2404)) ([9956587f](https://github.com/hyperium/hyper/commit/9956587f83428a5dbe338ba0b55c1dc0bce8c282))
    -   add `send_trailers` to Body channel's `Sender` ([#&#8203;2387](https://github.com/hyperium/hyper/issues/2387)) ([bf8d74ad](https://github.com/hyperium/hyper/commit/bf8d74ad1cf7d0b33b470b1e61625ebac56f9c4c), closes [#&#8203;2260](https://github.com/hyperium/hyper/issues/2260))
-   **ffi:**
    -   add HYPERE_INVALID_PEER_MESSAGE error code for parse errors ([1928682b](https://github.com/hyperium/hyper/commit/1928682b33f98244435ba6d574677546205a15ec))
    -   Initial C API for hyper ([3ae1581a](https://github.com/hyperium/hyper/commit/3ae1581a539b67363bd87d9d8fc8635a204eec5d))

##### v0.14.2 (2020-12-29)

##### Features

-   **client:** expose `connect` types without proto feature ([#&#8203;2377](https://github.com/hyperium/hyper/issues/2377)) ([73a59e5f](https://github.com/hyperium/hyper/commit/73a59e5fc7ddedcb7cbd91e97b33385fde57aa10))
-   **server:** expose `Accept` without httpX features ([#&#8203;2382](https://github.com/hyperium/hyper/issues/2382)) ([a6d4fcbe](https://github.com/hyperium/hyper/commit/a6d4fcbee65bebf461291def75f4c512ec62a664))

##### v0.14.1 (2020-12-23)

-   Fixes building documentation.

### [`v0.14.29`](https://github.com/hyperium/hyper/releases/tag/v0.14.29)

[Compare Source](https://github.com/hyperium/hyper/compare/v0.14.28...v0.14.29)

##### Bug Fixes

-   **http1:** start header read timeout immediately ([#&#8203;3305](https://github.com/hyperium/hyper/issues/3305)) ([b5c2592f](https://github.com/hyperium/hyper/commit/b5c2592fde5e20d29c69428c85aef3d682ee36bc))

##### Features

-   **http2:** add config for `max_local_error_reset_streams` in server ([#&#8203;3528](https://github.com/hyperium/hyper/issues/3528)) ([dedcb674](https://github.com/hyperium/hyper/commit/dedcb674f35eaec765a42b550caabe6f694d86d1))

##### New Contributors

-   [@&#8203;jeromegn](https://github.com/jeromegn) made their first contribution in [https://github.com/hyperium/hyper/pull/3305](https://github.com/hyperium/hyper/pull/3305)

**Full Changelog**: hyperium/hyper@v0.14.28...v0.14.29

### [`v0.14.28`](https://github.com/hyperium/hyper/releases/tag/v0.14.28)

[Compare Source](https://github.com/hyperium/hyper/compare/v0.14.27...v0.14.28)

#### Features

-   **body:** deprecate to_bytes() and aggregate() ([#&#8203;3466](https://github.com/hyperium/hyper/issues/3466)) ([7f382ad6](https://github.com/hyperium/hyper/commit/7f382ad64326e1470912feb310d348fd79099c44))
-   **client:** add `conn::http1::Connection::without_shutdown()` method ([#&#8203;3431](https://github.com/hyperium/hyper/issues/3431)) ([ad504977](https://github.com/hyperium/hyper/commit/ad504977b520a9582e5516a08b2f1028ef1b5e45))
-   **server:** add `Builder::local_addr()` ([#&#8203;3278](https://github.com/hyperium/hyper/issues/3278)) ([d342c2c7](https://github.com/hyperium/hyper/commit/d342c2c714498d33891fa285a3c9ae991dc34769))

#### Bug Fixes

-   **client:**
    -   panic when pool idle timeout set to zero ([#&#8203;3365](https://github.com/hyperium/hyper/issues/3365)) ([34d38008](https://github.com/hyperium/hyper/commit/34d38008499de37d9b5b65440b3123ccd05c7510))
    -   divide by zero error when DNS returns no addrs ([#&#8203;3355](https://github.com/hyperium/hyper/issues/3355)) ([41eaf204](https://github.com/hyperium/hyper/commit/41eaf2042b8169d3dd067d49cfdbdaaf36678903))
    -   Do not strip `path` and `scheme` components from URIs for HTTP/2 Extended CONNEC ([45aa6249](https://github.com/hyperium/hyper/commit/45aa62494127066c63c987a57cc5eae2c5361886))
    -   early respond from server shouldn't propagate reset error ([#&#8203;3274](https://github.com/hyperium/hyper/issues/3274)) ([aac6760e](https://github.com/hyperium/hyper/commit/aac6760e032050dd47f5dbd32f852bf1ede9312b), closes [#&#8203;2872](https://github.com/hyperium/hyper/issues/2872))
-   **http1:**
    -   add internal limit for chunked extensions ([#&#8203;3495](https://github.com/hyperium/hyper/issues/3495)) ([344a8782](https://github.com/hyperium/hyper/commit/344a87822951a46d252843ccc0b48e62988fc85b))
    -   reject chunked headers missing a digit ([#&#8203;3494](https://github.com/hyperium/hyper/issues/3494)) ([5eca028f](https://github.com/hyperium/hyper/commit/5eca028f4142e3e73f6d6188a4076f4db292b252))

#### New Contributors

-   [@&#8203;bdbai](https://github.com/bdbai) made their first contribution in [https://github.com/hyperium/hyper/pull/3242](https://github.com/hyperium/hyper/pull/3242)
-   [@&#8203;gngpp](https://github.com/gngpp) made their first contribution in [https://github.com/hyperium/hyper/pull/3355](https://github.com/hyperium/hyper/pull/3355)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "on the first day of the month" in timezone America/Los_Angeles, Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these updates again.

---

 - [ ] If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/get-convex/convex).

GitOrigin-RevId: 4cc8d7c0741be125970461ee696675e42e8826a9
  • Loading branch information
renovate[bot] authored and Convex, Inc. committed Aug 14, 2024
1 parent b030a51 commit d1bfe3e
Show file tree
Hide file tree
Showing 33 changed files with 1,321 additions and 446 deletions.
624 changes: 375 additions & 249 deletions Cargo.lock

Large diffs are not rendered by default.

43 changes: 23 additions & 20 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,8 @@ async_zip = { version = "0.0.9", default-features = false, features = [ "zstd",
cbc = { version = "0.1.2" }
csv-async = "1.2"
atomic_refcell = "0.1.13"
axum = { version = "0.6", features = [ "headers", "ws", "original-uri", "macros", "multipart" ] }
axum = { version = "0.7", features = [ "ws", "original-uri", "macros", "multipart" ] }
axum-extra = { version = "0.9.3", features = [ "typed-header" ] }
base32 = "0.4.0"
base-62 = { rev = "6f91a3da4b83f20379469835f64195bd52d7b9dd", git = "https://github.com/kryptco/base62.rs" }
base64 = "0.13"
Expand Down Expand Up @@ -49,15 +50,17 @@ futures = "0.3"
futures-async-stream = "0.2.11"
futures-util = "0.3.30"
governor = "0.6.0"
headers = "0.3"
headers = "0.4"
hex = "0.4"
home = "0.5"
enum-iterator = "2.0.0"
http = "0.2.8"
http = "1.0.0"
http-cache = { version = "0.18", default-features = false }
http-cache-reqwest = { version = "0.13.0", features = [ "manager-moka" ] }
http-body-util = "0.1.2"
http-cache-reqwest = { version = "0.14.0", features = [ "manager-moka" ] }
humansize = { version = "2.1.3", features = [ "impl_style" ] }
hyper = "0.14.16"
hyper = "1.3.1"
hyper-util = { version = "0.1.5", features = [ "server-graceful" ] }
proc-macro2 = { version = "1.0" }
imbl = "3.0.0"
itertools = "0.13"
Expand Down Expand Up @@ -85,10 +88,10 @@ prometheus = { git = "https://github.com/get-convex/rust-prometheus", rev = "061
prometheus-hyper = "0.2.0"
proptest = "1"
proptest-derive = "0.4.0"
proptest-http = { git = "https://github.com/sujayakar/proptest-http", rev = "12ef4c4ac2002b050ab0944a9587d83d7ea9fce2" }
prost = "0.12"
prost-types = "0.12"
prost-reflect = { version = "0.13.1", features = [ "text-format", "miette" ] }
proptest-http = { git = "https://github.com/nipunn1313/proptest-http", rev = "0e658bd4f6dbb73bdd3be66f0d2c34c00cc3a446" }
prost = "0.13"
prost-types = "0.13"
prost-reflect = { version = "0.14.0", features = [ "text-format", "miette" ] }
pyo3 = "0.20.3"
pyo3-asyncio = { version = "0.20.0", features = [ "tokio-runtime" ] }
pyo3-build-config = { version = "0.20.3", features = [ "resolve-config" ] }
Expand All @@ -99,15 +102,15 @@ rand = "0.8"
rand_chacha = "0.3.1"
ref-cast = "1.0.20"
regex = "1"
reqwest = { version = "0.11.24", features = [ "json", "stream", "gzip", "native-tls-vendored" ] }
reqwest-middleware = "0.2.0"
reqwest = { version = "0.12.1", features = [ "json", "stream", "gzip", "native-tls-vendored" ] }
reqwest-middleware = "0.3.2"
ring = "0.17.8"
rsa = "0.9.6"
rusqlite = { version = "0.30", features = [ "bundled" ] }
saffron = { git = "https://github.com/get-convex/saffron", rev = "1d842379919fb5c1988ac127cebd6167b1eb9bec", features = [ "std" ] }
schemars = { version = "0.8" }
semver = { version = "1", features = [ "serde" ] }
sentry = { version = "0.31", features = [ "anyhow", "tower", "tower-http" ] }
sentry = { version = "0.32", features = [ "anyhow", "tower", "tower-http" ] }
serde = { version = "1", features = [ "derive" ] }
serde_json = { version = "1", features = [ "float_roundtrip", "preserve_order" ] }
sha1 = { version = "0.10.5", features = [ "oid" ] }
Expand All @@ -128,19 +131,19 @@ tokio = { version = "1", features = [ "full" ] }
tokio-metrics-collector = { version = "0.2.1" }
tokio-process-stream = { version = "0.4.0" }
tokio-stream = { version = "0.1", features = [ "io-util", "sync", "signal" ] }
tokio-tungstenite = { version = "0.20.0", features = [ "native-tls-vendored" ] }
tonic = { version = "0.10.2", features = [ "gzip" ] }
tonic-build = "0.10.0"
tonic-health = "0.10.0"
tokio-tungstenite = { version = "0.21.0", features = [ "native-tls-vendored" ] }
tonic = { version = "0.12.0", features = [ "gzip" ] }
tonic-build = "0.12.0"
tonic-health = "0.12.0"
tower = { version = "0.4", features = [ "limit", "timeout" ] }
tower-cookies = "0.9"
tower-http = { version = "0.4", features = [ "trace", "cors", "decompression-br" ] }
tower-cookies = "0.10"
tower-http = { version = "0.5", features = [ "trace", "cors", "decompression-br" ] }
tracing = "0.1"
tracing-appender = { version = "0.2" }
tracing-subscriber = { version = "0.3.17", features = [ "env-filter", "json" ] }
tracy-client = { version = "0.17.0", default-features = false, features = [ "fibers" ] }
tungstenite = { version = "0.20.0", features = [ "native-tls-vendored" ] }
url = "2"
tungstenite = { version = "0.21.0", features = [ "url", "native-tls-vendored" ] }
url = "2.5.2"
urlencoding = "2.1.3"
uuid = { version = "1.6", features = [ "serde", "v4" ] }
walkdir = "2"
Expand Down
22 changes: 12 additions & 10 deletions crates/authentication/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,6 @@ use chrono::TimeZone;
use common::auth::AuthInfo;
use errors::ErrorMetadata;
use futures::Future;
use http::{
header::ACCEPT,
HeaderValue,
Method,
StatusCode,
};
use keybroker::UserIdentity;
use oauth2::{
HttpRequest,
Expand All @@ -36,6 +30,12 @@ use openidconnect::{
CoreIdTokenVerifier,
CoreProviderMetadata,
},
http::{
header::ACCEPT,
HeaderValue,
Method,
StatusCode,
},
ClaimsVerificationError,
ClientId,
DiscoveryError,
Expand Down Expand Up @@ -162,9 +162,11 @@ where
match e {
DiscoveryError::Response(code, body, _) => {
let long = format!("{long}: {} {}", code, String::from_utf8_lossy(&body));
if let Some(em) =
ErrorMetadata::from_http_status_code(code, short, long.clone())
{
if let Some(em) = ErrorMetadata::from_http_status_code(
code.to_string().parse().unwrap(),
short,
long.clone(),
) {
em
} else {
ErrorMetadata::bad_request(short, long)
Expand Down Expand Up @@ -397,7 +399,6 @@ mod tests {
Future,
FutureExt,
};
use http::StatusCode;
use keybroker::testing::TEST_SIGNING_KEY;
use openidconnect::{
core::{
Expand All @@ -413,6 +414,7 @@ mod tests {
CoreResponseType,
CoreSubjectIdentifierType,
},
http::StatusCode,
AdditionalClaims,
Audience,
EmptyAdditionalClaims,
Expand Down
3 changes: 3 additions & 0 deletions crates/common/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,14 @@ event-listener = { workspace = true }
float_next_after = { workspace = true }
futures = { workspace = true }
futures-async-stream = { workspace = true }
futures-util = { workspace = true }
governor = { workspace = true }
headers = { workspace = true }
hex = { workspace = true }
http = { workspace = true }
http-body-util = { workspace = true }
hyper = { workspace = true }
hyper-util = { workspace = true }
imbl = { workspace = true }
itertools = { workspace = true }
maplit = { workspace = true }
Expand Down
5 changes: 2 additions & 3 deletions crates/common/src/grpc/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,11 @@ use std::{
net::SocketAddr,
};

use axum::body::Body;
use futures::Future;
use sentry::integrations::tower as sentry_tower;
use tonic::{
server::NamedService,
transport::server::Routes,
service::Routes,
};
use tonic_health::{
server::{
Expand Down Expand Up @@ -39,7 +38,7 @@ impl ConvexGrpcService {
pub fn add_service<S>(mut self, service: S) -> Self
where
S: tower::Service<
http::Request<Body>,
http::Request<tonic::body::BoxBody>,
Response = http::Response<tonic::body::BoxBody>,
Error = Infallible,
> + NamedService
Expand Down
13 changes: 3 additions & 10 deletions crates/common/src/http/extract.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,16 @@ use std::time::Instant;

use async_trait::async_trait;
use axum::{
body::HttpBody,
extract::{
FromRequest,
FromRequestParts,
},
http::request::{
Parts,
Request,
},
http::request::Parts,
response::{
IntoResponse,
Response,
},
BoxError,
};
use errors::ErrorMetadata;
use serde::{
Expand Down Expand Up @@ -90,17 +86,14 @@ pub struct Json<T>(pub T);
/// Wrapper type around axum::Json that uses HttpResponseError instead
/// of JsonRejection to make sure we get propper logging / error reporting.
#[async_trait]
impl<S, B, T> FromRequest<S, B> for Json<T>
impl<S, T> FromRequest<S> for Json<T>
where
T: DeserializeOwned,
B: HttpBody + Send + 'static,
B::Data: Send,
B::Error: Into<BoxError>,
S: Send + Sync,
{
type Rejection = HttpResponseError;

async fn from_request(req: Request<B>, state: &S) -> Result<Self, Self::Rejection> {
async fn from_request(req: Request, state: &S) -> Result<Self, Self::Rejection> {
#[allow(clippy::disallowed_types)]
let t = axum::Json::<T>::from_request(req, state)
.await
Expand Down
2 changes: 1 addition & 1 deletion crates/common/src/http/fetch.rs
Original file line number Diff line number Diff line change
Expand Up @@ -242,7 +242,7 @@ mod tests {

// Ensure it doesn't panic. Regression test for.
// https://github.com/seanmonstar/reqwest/issues/668
assert!(err.to_string().contains("Parsed Url is not a valid Uri"));
assert!(format!("{err:?}").contains("Parsed Url is not a valid Uri"));

Ok(())
}
Expand Down
Loading

0 comments on commit d1bfe3e

Please sign in to comment.