This Month in hyper: February 2023
After recapping the 2022 year, here’s what the amazing contributors have been doing to make hyper ever better during January and February of 2023.
Releases
- hyper v0.14.24: fixes some expect-continue behavior, and reduces the internal max allocation in
to_bytes
. - h2 v0.3.16: adds a missing piece for Extended CONNECT, and several bug fixes (memory reduction, panics)
- reqwest v0.11.14: adds
Proxy::no_proxy(url)
that works like theNO_PROXY
environment variable, and several internal optimizations reducing copies and memory allocations. - tower-http v0.4.0: a new decompression layer for Requests,
ServeDir
andServeFile
now translates IO errors into Responses, and adds a more flexibleValidateRequest
layer.
hyper 1.0
We released RC3, which fixed up some missing pieces in the API. Places needing an Executor
now ask for one, and we added hyper::rt::bounds
to publicly expose nameable but future-proof Executor trait “aliases”, so libraries building on top of hyper can use them as bounds. We also added a few state getters for SendRequest
which were needed for the next exciting part.
The higher-level pooling Client
from 0.14.x has been ported to hyper-util. This was the most common blocker preventing people from trying out the release candidates. You can now use the legacy::Client
with hyper 1.0.0-rc.3, and have the normal connecting/pooling client experience you’re used to (see the example).
We’re still in the hyper polish period 💅. There’s still a little bit of time left to get us your feedback! It’s the most important part of this period. Or join us in one of the four polish areas (or help lead one)! You can also come chat with us about anything.
We took some extra time to focus on RC4, which has the last few breaking changes to go. Likely, hyper will vendor it’s own IO traits, and change Service::call
to be &self
instead of &mut self
. See the related issues if you have feedback.
The extra time will also allow us to investigate having a security review done for 1.0, to prevent any gotchas.
HTTP/3
We’re working on HTTP/3 in a separate crate, h3, with the goal of fitting it into hyper.
Within the next couple days, we’d like to publish a v0.0.1 to crates.io. The API likely will change in the very near future, but knowing exactly how requires allowing experimenters like reqwest to try it out.