Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(client): Do not strip path and scheme components from URIs for HTTP/2 Extended CONNECT requests #3242

Merged
merged 4 commits into from
Aug 3, 2023

Conversation

bdbai
Copy link

@bdbai bdbai commented Jun 9, 2023

As per RFC 8441:

On requests that contain the :protocol pseudo-header field, the
:scheme and :path pseudo-header fields of the target URI (see
Section 5) MUST also be included.

I was trying to implement WebSocket handshake based on HTTP/2 Extended CONNECT. The current implementation crafted a request which was considered invalid by the server (HAProxy 2.8):

image

Compared to the example illustrated in RFC 8441, the pseudo headers :scheme and :path were missing.

After the fix, the client could successfully establish a WebSocket tunnel to the server.

image

@bdbai bdbai marked this pull request as draft June 9, 2023 17:31
@bdbai bdbai marked this pull request as ready for review June 9, 2023 17:37
@bdbai bdbai changed the title Do not strip path and scheme components from URIs for HTTP/2 CONNECT requests fix(client): Do not strip path and scheme components from URIs for HTTP/2 Extended CONNECT requests Jun 9, 2023
bdbai added a commit to YtFlow/YtFlowCore that referenced this pull request Jun 9, 2023
- Auto probe and fallback
- Pending hyperium/hyper#3242 to work
  - hyper 人合了麻烦踢一下谢谢茄子
@seanmonstar seanmonstar requested a review from nox June 12, 2023 18:06
@bdbai
Copy link
Author

bdbai commented Jul 2, 2023

Hi @nox , can I nudge a little bit for reviewing this PR?👀

Copy link
Contributor

@nox nox left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would be nice to have a test but this looks good to me.

@bdbai
Copy link
Author

bdbai commented Jul 7, 2023

@nox I have added two integrations tests for client CONNECT requests.

@seanmonstar Since the Extended CONNECT requests only apply to h2, I've made a few changes to the helper macro in the integration test so that certain tests will not run in http/1 mode. Please take a look and see if you are okay with this approach. Thanks!

@bdbai bdbai requested a review from nox July 7, 2023 17:35
@seanmonstar
Copy link
Member

I'm happy to get this in with the test, thanks so much! Looks like CI noticed a combination of features that fail to compile, so probably a cfg(feature = ...) flag is needed in a new place.

@bdbai
Copy link
Author

bdbai commented Aug 3, 2023

@seanmonstar I've updated it with the feature flags. Hopefully it will pass this time.

@seanmonstar seanmonstar merged commit 45aa624 into hyperium:0.14.x Aug 3, 2023
19 checks passed
@seanmonstar
Copy link
Member

Thank you for being patient with us!

@DDtKey
Copy link
Contributor

DDtKey commented Aug 7, 2023

Shouldn't these changes be reflected in 1.0.0 version? (or perhaps hyper-utils)
I'm a bit concerned that some changes may be missed in the newer versions

cc @seanmonstar

@seanmonstar
Copy link
Member

Yes, a similar thing could be made a PR to https://github.com/hyperium/hyper-util

kbudde pushed a commit to kbudde/bench-metrics that referenced this pull request Dec 30, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [hyper](https://hyper.rs)
([source](https://togithub.com/hyperium/hyper)) | dependencies | patch |
`0.14.27` -> `0.14.28` |

---

### Release Notes

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

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

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

#### Features

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

#### Bug Fixes

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

#### New Contributors

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

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
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 this update
again.

---

- [ ] <!-- rebase-check -->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/kbudde/bench-metrics).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMDMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjEwMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
leftwo pushed a commit to oxidecomputer/crucible that referenced this pull request May 14, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [hyper](https://hyper.rs)
([source](https://togithub.com/hyperium/hyper)) | workspace.dependencies
| patch | `0.14.27` -> `0.14.28` |

---

### Release Notes

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

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

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

#### Features

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

#### Bug Fixes

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

#### New Contributors

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

</details>
maxdeviant pushed a commit to zed-industries/zed that referenced this pull request Aug 8, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [hyper](https://hyper.rs)
([source](https://togithub.com/hyperium/hyper)) | workspace.dependencies
| patch | `0.14.27` -> `0.14.30` |

---

### Release Notes

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

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

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

#### Bug Fixes

- **http1:** reject final chunked if missing 0
([4a51b2af](https://togithub.com/hyperium/hyper/commit/4a51b2afefcc1373c2a5b834fa0ae8d935dbff46))

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

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

#### Bug Fixes

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

#### Features

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

#### New Contributors

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

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

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

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

#### Features

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

#### Bug Fixes

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

#### New Contributors

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

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 3pm on Wednesday" in timezone
America/New_York, 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 this update
again.

---

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

---

Release Notes:

- N/A

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4yMC4xIiwidXBkYXRlZEluVmVyIjoiMzguMjAuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
convex-copybara bot pushed a commit to get-convex/convex-backend that referenced this pull request Aug 14, 2024
This PR contains the following updates:

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

---

### Release Notes

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

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

[Compare Source](https://togithub.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://togithub.com/hyperium/http/blob/HEAD/CHANGELOG.md#100-November-15-2023)

[Compare Source](https://togithub.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://togithub.com/hyperium/http/releases/tag/v0.2.12)

[Compare Source](https://togithub.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://togithub.com/hyperium/http/releases/tag/v0.2.11)

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

#### What's Changed

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

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

[Compare Source](https://togithub.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://togithub.com/hyperium/http-body/compare/v0.4.6...v1.0.0)

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

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

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

</details>

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

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

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

##### Bug Fixes

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

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

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

##### Bug Fixes

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

##### Features

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

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

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

##### Bug Fixes

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

##### Features

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

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

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

##### Bug Fixes

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

##### Features

-   **client:** add `http1::Connection` `without_shutdown()` method ([#&#8203;3430](https://togithub.com/hyperium/hyper/issues/3430)) ([210bfaa7](https://togithub.com/hyperium/hyper/commit/210bfaa711b5da1f6756582a2e4bc3e229924800))
-   **http1:** Add support for sending HTTP/1.1 Chunked Trailer Fields ([#&#8203;3375](https://togithub.com/hyperium/hyper/issues/3375)) ([31b41807](https://togithub.com/hyperium/hyper/commit/31b41807523370f3efbf47ba16c9e1c193b6335a), closes [#&#8203;2719](https://togithub.com/hyperium/hyper/issues/2719))
-   **server:** expose `server::conn::http1::UpgradeableConnection` ([#&#8203;3457](https://togithub.com/hyperium/hyper/issues/3457)) ([6e3042a8](https://togithub.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://togithub.com/hyperium/hyper/issues/3413)) ([dd6d81ca](https://togithub.com/hyperium/hyper/commit/dd6d81ca4a180695dc70d6c9b2aececd29606224), closes [#&#8203;3412](https://togithub.com/hyperium/hyper/issues/3412))

##### Features

-   **rt:** Make ReadBuf::new public ([7161f562](https://togithub.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://togithub.com/hyperium/hyper/commit/dd6d81ca4a180695dc70d6c9b2aececd29606224))

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

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

##### Features

-   **rt:** Make ReadBuf::new public ([7161f562](https://togithub.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://togithub.com/hyperium/hyper/commit/dd6d81ca4a180695dc70d6c9b2aececd29606224))

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

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

##### Features

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

##### Breaking Changes

-   Upgrade to `http` 1.0.

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

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

([52b27faa](https://togithub.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://togithub.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://togithub.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://togithub.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://togithub.com/hyperium/hyper/commit/50f123afc0e6c289030bf8699dbec826dc47572c))
-   The `ReasonPhrase::from_bytes_unchecked()` method is
    gone. Use `from_static()` or `TryFrom` to construct one.

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

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

##### Bug Fixes

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

##### Features

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

##### Features

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

##### Breaking Changes

-   `hyper::client::conn::Http2::Builder::new` now requires an executor argument.
    ([8068aa01](https://togithub.com/hyperium/hyper/commit/8068aa011f6477a21ad54230c8fef9e26b330503))
-   The method
    `hyper::client::conn::http1::Builder::executor()` is removed, since it did nothing.
    ([1de9accf](https://togithub.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://togithub.com/hyperium/hyper/commit/75aac9f47fe0246016e6133cd3cfa35b63c8904e), closes [#&#8203;2649](https://togithub.com/hyperium/hyper/issues/2649))
-   **http2:** Fix race condition in client dispatcher ([#&#8203;3041](https://togithub.com/hyperium/hyper/issues/3041)) ([f202230c](https://togithub.com/hyperium/hyper/commit/f202230c6fa274f6a4e6cbaad57ca59beb0a5125))

##### Features

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

##### Breaking Changes

-   removes `server::conn::http2::Builder::with_executor()`
    ([ab59a6f7](https://togithub.com/hyperium/hyper/commit/ab59a6f7a1e654b1607744320de5f8477de5d6c8))
-   The return types of `Timer` have been changed.
    ([8790fee7](https://togithub.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://togithub.com/hyperium/hyper/issues/2926)) ([d4b5bd4e](https://togithub.com/hyperium/hyper/commit/d4b5bd4ee6af0ae8924cf05ab799cc3e19a3c62d))

##### Features

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

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

##### Bug Fixes

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

##### Features

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

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

##### Bug Fixes

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

##### Features

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

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

##### Bug Fixes

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

##### Features

-   **client:** implement the HTTP/2 extended CONNECT protocol from RFC 8441 ([#&#8203;2682](https://togithub.com/hyperium/hyper/issues/2682)) ([5ec094ca](https://togithub.com/hyperium/hyper/commit/5ec094caa5c999e6f919a2bc82f5f3b7d40c2d8a))
-   **error:** add `Error::message` ([#&#8203;2737](https://togithub.com/hyperium/hyper/issues/2737)) ([6932896a](https://togithub.com/hyperium/hyper/commit/6932896a7fca58fe461269461f925da8fd4e8d8a), closes [#&#8203;2732](https://togithub.com/hyperium/hyper/issues/2732))
-   **http1:** implement obsolete line folding ([#&#8203;2734](https://togithub.com/hyperium/hyper/issues/2734)) ([1f0c177b](https://togithub.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://togithub.com/hyperium/hyper/issues/2706)) ([5f938fff](https://togithub.com/hyperium/hyper/commit/5f938fffa64df23a2e4af81ed4e6d8bd760e2d05), closes [#&#8203;2701](https://togithub.com/hyperium/hyper/issues/2701))
-   **http2:** received `Body::size_hint()` now return 0 if implicitly empty ([#&#8203;2715](https://togithub.com/hyperium/hyper/issues/2715)) ([84b78b6c](https://togithub.com/hyperium/hyper/commit/84b78b6c877ff9aaa28d1e348a5deb63a9282503))
-   **server:** use case-insensitive comparison for Expect: 100-continue ([#&#8203;2709](https://togithub.com/hyperium/hyper/issues/2709)) ([7435cc33](https://togithub.com/hyperium/hyper/commit/7435cc3399895643062f4e399fae6d5b20b049a1), closes [#&#8203;2708](https://togithub.com/hyperium/hyper/issues/2708))

##### Features

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

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

##### Bug Fixes

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

##### Features

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

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

##### Bug Fixes

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

##### Features

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

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

##### Bug Fixes

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

##### Features

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

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

##### Bug Fixes

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

##### Features

-   **client:** expose http09 and http1 options on `client::conn::Builder` ([#&#8203;2611](https://togithub.com/hyperium/hyper/issues/2611)) ([73bff4e9](https://togithub.com/hyperium/hyper/commit/73bff4e98c372ce04b006370c0b0d2af29ea8718), closes [#&#8203;2461](https://togithub.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://togithub.com/hyperium/hyper/issues/2585)) ([52214f39](https://togithub.com/hyperium/hyper/commit/52214f391c0a18dc66d1ccff9c0c004c5da85002))
-   **http2:**
    -   improve I/O errors emitted by H2Upgraded ([#&#8203;2598](https://togithub.com/hyperium/hyper/issues/2598)) ([f51c677d](https://togithub.com/hyperium/hyper/commit/f51c677dec9debf60cb336dc938bae103adf17a0))
    -   preserve `proxy-authenticate` and `proxy-authorization` headers ([#&#8203;2597](https://togithub.com/hyperium/hyper/issues/2597)) ([52435701](https://togithub.com/hyperium/hyper/commit/5243570137ae49628cb387fff5611eea0add33bf))

##### Features

-   **ffi:** add hyper_request_on_informational ([25d18c0b](https://togithub.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://togithub.com/hyperium/hyper/commit/06335158ca48724db9bf074398067d2db08613e7))
    -   protect against overflow in chunked decoder ([efd9a982](https://togithub.com/hyperium/hyper/commit/efd9a9821fd2f1ae04b545094de76a435b62e70f))

##### Features

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

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

##### Bug Fixes

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

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

##### Features

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

##### Performance

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

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

##### Bug Fixes

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

##### Features

-   **server:** implement forgotten settings for case preserving ([4fd6c4cb](https://togithub.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://togithub.com/hyperium/hyper/issues/2506)) ([11345394](https://togithub.com/hyperium/hyper/commit/11345394d968d4817e1a0ee2550228ac0ae7ce74))
-   **http1:** add options to preserve header casing ([#&#8203;2480](https://togithub.com/hyperium/hyper/issues/2480)) ([dbea7716](https://togithub.com/hyperium/hyper/commit/dbea7716f157896bf7d2d417be7b4e382e7dc34f), closes [#&#8203;2313](https://togithub.com/hyperium/hyper/issues/2313))

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

##### Bug Fixes

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

##### Features

-   **client:** allow HTTP/0.9 responses behind a flag ([#&#8203;2473](https://togithub.com/hyperium/hyper/issues/2473)) ([68d4e4a3](https://togithub.com/hyperium/hyper/commit/68d4e4a3db91fb43f41a8c4fce1175ddb56816af), closes [#&#8203;2468](https://togithub.com/hyperium/hyper/issues/2468))
-   **server:** add `AddrIncoming::from_listener` constructor ([#&#8203;2439](https://togithub.com/hyperium/hyper/issues/2439)) ([4c946af4](https://togithub.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://togithub.com/hyperium/hyper/issues/2410)) ([2c8121f1](https://togithub.com/hyperium/hyper/commit/2c8121f1735aa8efeb0d5e4ef595363c373ba470), closes [#&#8203;2409](https://togithub.com/hyperium/hyper/issues/2409))
-   **http1:** fix server misinterpreting multiple Transfer-Encoding headers ([8f93123e](https://togithub.com/hyperium/hyper/commit/8f93123efef5c1361086688fe4f34c83c89cec02))

##### Features

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

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

##### Features

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

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

-   Fixes building documentation.

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

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

##### Bug Fixes

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

##### Features

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

##### New Contributors

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

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

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

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

#### Features

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

#### Bug Fixes

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

#### New Contributors

-   [@&#8203;bdbai](https://togithub.com/bdbai) made their first contribution in [hyperium/hyper#3242
-   [@&#8203;gngpp](https://togithub.com/gngpp) made their first contribution in [hyperium/hyper#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
convex-copybara bot pushed a commit to get-convex/convex-py that referenced this pull request Aug 14, 2024
This PR contains the following updates:

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

---

### Release Notes

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

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

[Compare Source](https://togithub.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://togithub.com/hyperium/http/blob/HEAD/CHANGELOG.md#100-November-15-2023)

[Compare Source](https://togithub.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://togithub.com/hyperium/http/releases/tag/v0.2.12)

[Compare Source](https://togithub.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://togithub.com/hyperium/http/releases/tag/v0.2.11)

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

#### What's Changed

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

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

[Compare Source](https://togithub.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://togithub.com/hyperium/http-body/compare/v0.4.6...v1.0.0)

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

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

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

</details>

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

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

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

##### Bug Fixes

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

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

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

##### Bug Fixes

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

##### Features

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

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

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

##### Bug Fixes

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

##### Features

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

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

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

##### Bug Fixes

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

##### Features

-   **client:** add `http1::Connection` `without_shutdown()` method ([#&#8203;3430](https://togithub.com/hyperium/hyper/issues/3430)) ([210bfaa7](https://togithub.com/hyperium/hyper/commit/210bfaa711b5da1f6756582a2e4bc3e229924800))
-   **http1:** Add support for sending HTTP/1.1 Chunked Trailer Fields ([#&#8203;3375](https://togithub.com/hyperium/hyper/issues/3375)) ([31b41807](https://togithub.com/hyperium/hyper/commit/31b41807523370f3efbf47ba16c9e1c193b6335a), closes [#&#8203;2719](https://togithub.com/hyperium/hyper/issues/2719))
-   **server:** expose `server::conn::http1::UpgradeableConnection` ([#&#8203;3457](https://togithub.com/hyperium/hyper/issues/3457)) ([6e3042a8](https://togithub.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://togithub.com/hyperium/hyper/issues/3413)) ([dd6d81ca](https://togithub.com/hyperium/hyper/commit/dd6d81ca4a180695dc70d6c9b2aececd29606224), closes [#&#8203;3412](https://togithub.com/hyperium/hyper/issues/3412))

##### Features

-   **rt:** Make ReadBuf::new public ([7161f562](https://togithub.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://togithub.com/hyperium/hyper/commit/dd6d81ca4a180695dc70d6c9b2aececd29606224))

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

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

##### Features

-   **rt:** Make ReadBuf::new public ([7161f562](https://togithub.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://togithub.com/hyperium/hyper/commit/dd6d81ca4a180695dc70d6c9b2aececd29606224))

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

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

##### Features

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

##### Breaking Changes

-   Upgrade to `http` 1.0.

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

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

([52b27faa](https://togithub.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://togithub.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://togithub.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://togithub.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://togithub.com/hyperium/hyper/commit/50f123afc0e6c289030bf8699dbec826dc47572c))
-   The `ReasonPhrase::from_bytes_unchecked()` method is
    gone. Use `from_static()` or `TryFrom` to construct one.

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

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

##### Bug Fixes

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

##### Features

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

##### Features

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

##### Breaking Changes

-   `hyper::client::conn::Http2::Builder::new` now requires an executor argument.
    ([8068aa01](https://togithub.com/hyperium/hyper/commit/8068aa011f6477a21ad54230c8fef9e26b330503))
-   The method
    `hyper::client::conn::http1::Builder::executor()` is removed, since it did nothing.
    ([1de9accf](https://togithub.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://togithub.com/hyperium/hyper/commit/75aac9f47fe0246016e6133cd3cfa35b63c8904e), closes [#&#8203;2649](https://togithub.com/hyperium/hyper/issues/2649))
-   **http2:** Fix race condition in client dispatcher ([#&#8203;3041](https://togithub.com/hyperium/hyper/issues/3041)) ([f202230c](https://togithub.com/hyperium/hyper/commit/f202230c6fa274f6a4e6cbaad57ca59beb0a5125))

##### Features

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

##### Breaking Changes

-   removes `server::conn::http2::Builder::with_executor()`
    ([ab59a6f7](https://togithub.com/hyperium/hyper/commit/ab59a6f7a1e654b1607744320de5f8477de5d6c8))
-   The return types of `Timer` have been changed.
    ([8790fee7](https://togithub.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://togithub.com/hyperium/hyper/issues/2926)) ([d4b5bd4e](https://togithub.com/hyperium/hyper/commit/d4b5bd4ee6af0ae8924cf05ab799cc3e19a3c62d))

##### Features

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

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

##### Bug Fixes

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

##### Features

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

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

##### Bug Fixes

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

##### Features

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

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

##### Bug Fixes

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

##### Features

-   **client:** implement the HTTP/2 extended CONNECT protocol from RFC 8441 ([#&#8203;2682](https://togithub.com/hyperium/hyper/issues/2682)) ([5ec094ca](https://togithub.com/hyperium/hyper/commit/5ec094caa5c999e6f919a2bc82f5f3b7d40c2d8a))
-   **error:** add `Error::message` ([#&#8203;2737](https://togithub.com/hyperium/hyper/issues/2737)) ([6932896a](https://togithub.com/hyperium/hyper/commit/6932896a7fca58fe461269461f925da8fd4e8d8a), closes [#&#8203;2732](https://togithub.com/hyperium/hyper/issues/2732))
-   **http1:** implement obsolete line folding ([#&#8203;2734](https://togithub.com/hyperium/hyper/issues/2734)) ([1f0c177b](https://togithub.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://togithub.com/hyperium/hyper/issues/2706)) ([5f938fff](https://togithub.com/hyperium/hyper/commit/5f938fffa64df23a2e4af81ed4e6d8bd760e2d05), closes [#&#8203;2701](https://togithub.com/hyperium/hyper/issues/2701))
-   **http2:** received `Body::size_hint()` now return 0 if implicitly empty ([#&#8203;2715](https://togithub.com/hyperium/hyper/issues/2715)) ([84b78b6c](https://togithub.com/hyperium/hyper/commit/84b78b6c877ff9aaa28d1e348a5deb63a9282503))
-   **server:** use case-insensitive comparison for Expect: 100-continue ([#&#8203;2709](https://togithub.com/hyperium/hyper/issues/2709)) ([7435cc33](https://togithub.com/hyperium/hyper/commit/7435cc3399895643062f4e399fae6d5b20b049a1), closes [#&#8203;2708](https://togithub.com/hyperium/hyper/issues/2708))

##### Features

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

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

##### Bug Fixes

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

##### Features

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

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

##### Bug Fixes

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

##### Features

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

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

##### Bug Fixes

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

##### Features

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

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

##### Bug Fixes

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

##### Features

-   **client:** expose http09 and http1 options on `client::conn::Builder` ([#&#8203;2611](https://togithub.com/hyperium/hyper/issues/2611)) ([73bff4e9](https://togithub.com/hyperium/hyper/commit/73bff4e98c372ce04b006370c0b0d2af29ea8718), closes [#&#8203;2461](https://togithub.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://togithub.com/hyperium/hyper/issues/2585)) ([52214f39](https://togithub.com/hyperium/hyper/commit/52214f391c0a18dc66d1ccff9c0c004c5da85002))
-   **http2:**
    -   improve I/O errors emitted by H2Upgraded ([#&#8203;2598](https://togithub.com/hyperium/hyper/issues/2598)) ([f51c677d](https://togithub.com/hyperium/hyper/commit/f51c677dec9debf60cb336dc938bae103adf17a0))
    -   preserve `proxy-authenticate` and `proxy-authorization` headers ([#&#8203;2597](https://togithub.com/hyperium/hyper/issues/2597)) ([52435701](https://togithub.com/hyperium/hyper/commit/5243570137ae49628cb387fff5611eea0add33bf))

##### Features

-   **ffi:** add hyper_request_on_informational ([25d18c0b](https://togithub.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://togithub.com/hyperium/hyper/commit/06335158ca48724db9bf074398067d2db08613e7))
    -   protect against overflow in chunked decoder ([efd9a982](https://togithub.com/hyperium/hyper/commit/efd9a9821fd2f1ae04b545094de76a435b62e70f))

##### Features

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

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

##### Bug Fixes

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

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

##### Features

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

##### Performance

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

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

##### Bug Fixes

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

##### Features

-   **server:** implement forgotten settings for case preserving ([4fd6c4cb](https://togithub.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://togithub.com/hyperium/hyper/issues/2506)) ([11345394](https://togithub.com/hyperium/hyper/commit/11345394d968d4817e1a0ee2550228ac0ae7ce74))
-   **http1:** add options to preserve header casing ([#&#8203;2480](https://togithub.com/hyperium/hyper/issues/2480)) ([dbea7716](https://togithub.com/hyperium/hyper/commit/dbea7716f157896bf7d2d417be7b4e382e7dc34f), closes [#&#8203;2313](https://togithub.com/hyperium/hyper/issues/2313))

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

##### Bug Fixes

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

##### Features

-   **client:** allow HTTP/0.9 responses behind a flag ([#&#8203;2473](https://togithub.com/hyperium/hyper/issues/2473)) ([68d4e4a3](https://togithub.com/hyperium/hyper/commit/68d4e4a3db91fb43f41a8c4fce1175ddb56816af), closes [#&#8203;2468](https://togithub.com/hyperium/hyper/issues/2468))
-   **server:** add `AddrIncoming::from_listener` constructor ([#&#8203;2439](https://togithub.com/hyperium/hyper/issues/2439)) ([4c946af4](https://togithub.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://togithub.com/hyperium/hyper/issues/2410)) ([2c8121f1](https://togithub.com/hyperium/hyper/commit/2c8121f1735aa8efeb0d5e4ef595363c373ba470), closes [#&#8203;2409](https://togithub.com/hyperium/hyper/issues/2409))
-   **http1:** fix server misinterpreting multiple Transfer-Encoding headers ([8f93123e](https://togithub.com/hyperium/hyper/commit/8f93123efef5c1361086688fe4f34c83c89cec02))

##### Features

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

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

##### Features

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

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

-   Fixes building documentation.

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

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

##### Bug Fixes

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

##### Features

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

##### New Contributors

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

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

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

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

#### Features

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

#### Bug Fixes

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

#### New Contributors

-   [@&#8203;bdbai](https://togithub.com/bdbai) made their first contribution in [hyperium/hyper#3242
-   [@&#8203;gngpp](https://togithub.com/gngpp) made their first contribution in [hyperium/hyper#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
convex-copybara bot pushed a commit to get-convex/convex-rs that referenced this pull request Aug 14, 2024
This PR contains the following updates:

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

---

### Release Notes

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

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

[Compare Source](https://togithub.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://togithub.com/hyperium/http/blob/HEAD/CHANGELOG.md#100-November-15-2023)

[Compare Source](https://togithub.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://togithub.com/hyperium/http/releases/tag/v0.2.12)

[Compare Source](https://togithub.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://togithub.com/hyperium/http/releases/tag/v0.2.11)

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

#### What's Changed

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

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

[Compare Source](https://togithub.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://togithub.com/hyperium/http-body/compare/v0.4.6...v1.0.0)

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

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

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

</details>

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

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

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

##### Bug Fixes

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

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

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

##### Bug Fixes

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

##### Features

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

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

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

##### Bug Fixes

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

##### Features

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

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

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

##### Bug Fixes

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

##### Features

-   **client:** add `http1::Connection` `without_shutdown()` method ([#&#8203;3430](https://togithub.com/hyperium/hyper/issues/3430)) ([210bfaa7](https://togithub.com/hyperium/hyper/commit/210bfaa711b5da1f6756582a2e4bc3e229924800))
-   **http1:** Add support for sending HTTP/1.1 Chunked Trailer Fields ([#&#8203;3375](https://togithub.com/hyperium/hyper/issues/3375)) ([31b41807](https://togithub.com/hyperium/hyper/commit/31b41807523370f3efbf47ba16c9e1c193b6335a), closes [#&#8203;2719](https://togithub.com/hyperium/hyper/issues/2719))
-   **server:** expose `server::conn::http1::UpgradeableConnection` ([#&#8203;3457](https://togithub.com/hyperium/hyper/issues/3457)) ([6e3042a8](https://togithub.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://togithub.com/hyperium/hyper/issues/3413)) ([dd6d81ca](https://togithub.com/hyperium/hyper/commit/dd6d81ca4a180695dc70d6c9b2aececd29606224), closes [#&#8203;3412](https://togithub.com/hyperium/hyper/issues/3412))

##### Features

-   **rt:** Make ReadBuf::new public ([7161f562](https://togithub.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://togithub.com/hyperium/hyper/commit/dd6d81ca4a180695dc70d6c9b2aececd29606224))

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

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

##### Features

-   **rt:** Make ReadBuf::new public ([7161f562](https://togithub.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://togithub.com/hyperium/hyper/commit/dd6d81ca4a180695dc70d6c9b2aececd29606224))

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

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

##### Features

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

##### Breaking Changes

-   Upgrade to `http` 1.0.

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

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

([52b27faa](https://togithub.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://togithub.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://togithub.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://togithub.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://togithub.com/hyperium/hyper/commit/50f123afc0e6c289030bf8699dbec826dc47572c))
-   The `ReasonPhrase::from_bytes_unchecked()` method is
    gone. Use `from_static()` or `TryFrom` to construct one.

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

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

##### Bug Fixes

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

##### Features

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

##### Features

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

##### Breaking Changes

-   `hyper::client::conn::Http2::Builder::new` now requires an executor argument.
    ([8068aa01](https://togithub.com/hyperium/hyper/commit/8068aa011f6477a21ad54230c8fef9e26b330503))
-   The method
    `hyper::client::conn::http1::Builder::executor()` is removed, since it did nothing.
    ([1de9accf](https://togithub.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://togithub.com/hyperium/hyper/commit/75aac9f47fe0246016e6133cd3cfa35b63c8904e), closes [#&#8203;2649](https://togithub.com/hyperium/hyper/issues/2649))
-   **http2:** Fix race condition in client dispatcher ([#&#8203;3041](https://togithub.com/hyperium/hyper/issues/3041)) ([f202230c](https://togithub.com/hyperium/hyper/commit/f202230c6fa274f6a4e6cbaad57ca59beb0a5125))

##### Features

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

##### Breaking Changes

-   removes `server::conn::http2::Builder::with_executor()`
    ([ab59a6f7](https://togithub.com/hyperium/hyper/commit/ab59a6f7a1e654b1607744320de5f8477de5d6c8))
-   The return types of `Timer` have been changed.
    ([8790fee7](https://togithub.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://togithub.com/hyperium/hyper/issues/2926)) ([d4b5bd4e](https://togithub.com/hyperium/hyper/commit/d4b5bd4ee6af0ae8924cf05ab799cc3e19a3c62d))

##### Features

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

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

##### Bug Fixes

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

##### Features

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

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

##### Bug Fixes

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

##### Features

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

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

##### Bug Fixes

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

##### Features

-   **client:** implement the HTTP/2 extended CONNECT protocol from RFC 8441 ([#&#8203;2682](https://togithub.com/hyperium/hyper/issues/2682)) ([5ec094ca](https://togithub.com/hyperium/hyper/commit/5ec094caa5c999e6f919a2bc82f5f3b7d40c2d8a))
-   **error:** add `Error::message` ([#&#8203;2737](https://togithub.com/hyperium/hyper/issues/2737)) ([6932896a](https://togithub.com/hyperium/hyper/commit/6932896a7fca58fe461269461f925da8fd4e8d8a), closes [#&#8203;2732](https://togithub.com/hyperium/hyper/issues/2732))
-   **http1:** implement obsolete line folding ([#&#8203;2734](https://togithub.com/hyperium/hyper/issues/2734)) ([1f0c177b](https://togithub.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://togithub.com/hyperium/hyper/issues/2706)) ([5f938fff](https://togithub.com/hyperium/hyper/commit/5f938fffa64df23a2e4af81ed4e6d8bd760e2d05), closes [#&#8203;2701](https://togithub.com/hyperium/hyper/issues/2701))
-   **http2:** received `Body::size_hint()` now return 0 if implicitly empty ([#&#8203;2715](https://togithub.com/hyperium/hyper/issues/2715)) ([84b78b6c](https://togithub.com/hyperium/hyper/commit/84b78b6c877ff9aaa28d1e348a5deb63a9282503))
-   **server:** use case-insensitive comparison for Expect: 100-continue ([#&#8203;2709](https://togithub.com/hyperium/hyper/issues/2709)) ([7435cc33](https://togithub.com/hyperium/hyper/commit/7435cc3399895643062f4e399fae6d5b20b049a1), closes [#&#8203;2708](https://togithub.com/hyperium/hyper/issues/2708))

##### Features

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

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

##### Bug Fixes

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

##### Features

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

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

##### Bug Fixes

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

##### Features

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

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

##### Bug Fixes

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

##### Features

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

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

##### Bug Fixes

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

##### Features

-   **client:** expose http09 and http1 options on `client::conn::Builder` ([#&#8203;2611](https://togithub.com/hyperium/hyper/issues/2611)) ([73bff4e9](https://togithub.com/hyperium/hyper/commit/73bff4e98c372ce04b006370c0b0d2af29ea8718), closes [#&#8203;2461](https://togithub.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://togithub.com/hyperium/hyper/issues/2585)) ([52214f39](https://togithub.com/hyperium/hyper/commit/52214f391c0a18dc66d1ccff9c0c004c5da85002))
-   **http2:**
    -   improve I/O errors emitted by H2Upgraded ([#&#8203;2598](https://togithub.com/hyperium/hyper/issues/2598)) ([f51c677d](https://togithub.com/hyperium/hyper/commit/f51c677dec9debf60cb336dc938bae103adf17a0))
    -   preserve `proxy-authenticate` and `proxy-authorization` headers ([#&#8203;2597](https://togithub.com/hyperium/hyper/issues/2597)) ([52435701](https://togithub.com/hyperium/hyper/commit/5243570137ae49628cb387fff5611eea0add33bf))

##### Features

-   **ffi:** add hyper_request_on_informational ([25d18c0b](https://togithub.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://togithub.com/hyperium/hyper/commit/06335158ca48724db9bf074398067d2db08613e7))
    -   protect against overflow in chunked decoder ([efd9a982](https://togithub.com/hyperium/hyper/commit/efd9a9821fd2f1ae04b545094de76a435b62e70f))

##### Features

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

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

##### Bug Fixes

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

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

##### Features

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

##### Performance

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

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

##### Bug Fixes

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

##### Features

-   **server:** implement forgotten settings for case preserving ([4fd6c4cb](https://togithub.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://togithub.com/hyperium/hyper/issues/2506)) ([11345394](https://togithub.com/hyperium/hyper/commit/11345394d968d4817e1a0ee2550228ac0ae7ce74))
-   **http1:** add options to preserve header casing ([#&#8203;2480](https://togithub.com/hyperium/hyper/issues/2480)) ([dbea7716](https://togithub.com/hyperium/hyper/commit/dbea7716f157896bf7d2d417be7b4e382e7dc34f), closes [#&#8203;2313](https://togithub.com/hyperium/hyper/issues/2313))

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

##### Bug Fixes

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

##### Features

-   **client:** allow HTTP/0.9 responses behind a flag ([#&#8203;2473](https://togithub.com/hyperium/hyper/issues/2473)) ([68d4e4a3](https://togithub.com/hyperium/hyper/commit/68d4e4a3db91fb43f41a8c4fce1175ddb56816af), closes [#&#8203;2468](https://togithub.com/hyperium/hyper/issues/2468))
-   **server:** add `AddrIncoming::from_listener` constructor ([#&#8203;2439](https://togithub.com/hyperium/hyper/issues/2439)) ([4c946af4](https://togithub.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://togithub.com/hyperium/hyper/issues/2410)) ([2c8121f1](https://togithub.com/hyperium/hyper/commit/2c8121f1735aa8efeb0d5e4ef595363c373ba470), closes [#&#8203;2409](https://togithub.com/hyperium/hyper/issues/2409))
-   **http1:** fix server misinterpreting multiple Transfer-Encoding headers ([8f93123e](https://togithub.com/hyperium/hyper/commit/8f93123efef5c1361086688fe4f34c83c89cec02))

##### Features

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

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

##### Features

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

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

-   Fixes building documentation.

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

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

##### Bug Fixes

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

##### Features

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

##### New Contributors

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

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

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

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

#### Features

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

#### Bug Fixes

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

#### New Contributors

-   [@&#8203;bdbai](https://togithub.com/bdbai) made their first contribution in [hyperium/hyper#3242
-   [@&#8203;gngpp](https://togithub.com/gngpp) made their first contribution in [hyperium/hyper#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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants