Repository navigation
HTTP/3 Support #1818
Copy link
Copy link
Open
Labels
B-rfcBlocked: More comments would be useful in determine next steps.Blocked: More comments would be useful in determine next steps.C-featureCategory: feature. This is adding a new feature.Category: feature. This is adding a new feature.E-hardEffort: hard. Likely requires a deeper understanding of how hyper's internals work.Effort: hard. Likely requires a deeper understanding of how hyper's internals work.
Description
Current status
HTTP/3 support is on the roadmap. There is a working h3 crate, and reqwest has unstable HTTP/3 support.
Much work is still needed, and volunteers are welcome.
Besides the issue tracker (which should store durable decisions and their context), there's this h3 Discord channel to coordinate work.
Here's some of the main steps:
- Harden the
h3crate itself, such as fixing any straggling interop issues,
and filling out the spec conformance tags we use for accountability. - Proposal for (initially unstable)
hyper::rt::quicintegration, allowing
people to bring their own QUIC. - Write the
hyper::proto::http3glue that translates hyper's connection
patterns with theh3crate.
Reacted by Alexander Irbis, LifeIsStrange, ache, Ruben De Smet, TotalKrill, hugecheese, Nick, egmkang wang, Kelly Thomas Kline, Paul Lange and 396 more
Reacted by uvd, Ryo Ota, ty, Hunter Beast, Soheil Alizadeh, Nico Mürdter, Mishaa, Stephen Blum, Suraj, Moritz Hedtke and 16 more
Reacted by uvd, Hunter Beast, Soheil Alizadeh, Mishaa, Stephen Blum, dominictobias, Moritz Hedtke, Jonathan Pavlik, Jaspreet Singh, AFCMS and 16 more
Reacted by uvd, Hunter Beast, Suraj, Jaspreet Singh, AFCMS, NaN, Yogesh Shahi, Srikanth, LIZARD_OFFICIAL and mib
Reacted by uvd, Ryo Ota, Hunter Beast, Soheil Alizadeh, Spike O'Carroll, Christof Weickhardt, Nelson Chen, Yash Chauhan, Cameron Elliott, Mishaa and 39 more
Reacted by uvd, Hunter Beast, Soheil Alizadeh, Spike O'Carroll, ynwd, Rodrigo Chacon, Christof Weickhardt, Legokichi Duckscallion, Nico Mürdter, Altair Bueno and 36 more
Reacted by uvd, Chris Nixon, Hunter Beast, Soheil Alizadeh, Christof Weickhardt, Nelson Chen, Jason Williams, Mishaa, Stephen Blum, Moncef AOUDIA and 23 more
Metadata
Metadata
Assignees
Labels
B-rfcBlocked: More comments would be useful in determine next steps.Blocked: More comments would be useful in determine next steps.C-featureCategory: feature. This is adding a new feature.Category: feature. This is adding a new feature.E-hardEffort: hard. Likely requires a deeper understanding of how hyper's internals work.Effort: hard. Likely requires a deeper understanding of how hyper's internals work.
Activity
shenshouer commentedon Apr 26, 2020
Any plan for this?
quentusrex commentedon May 2, 2020
Since I followed the rabbit hole from Tokio and Tonic to here, the latest work appears to be over here currently:
quinn-rs/quinn#734
Any best ways to support the latest efforts on http/3 support?
djc commentedon May 3, 2020
I have a branch going on here: https://github.com/djc/hyper/tree/quinn-h3. This adds (completely untested) support for HTTP/3 to the hyper server, but doesn't yet add any API to set it up. I have some ideas on how to do that. That branch also more or less depends on #2182 and #2188 (which are currently included in that branch) and on further tweaks to quinn-rs/quinn#734 that I'll have to rebase on the final version of that PR once it's ready.
quentusrex commentedon Jul 1, 2020
@djc Looks like all of the tickets but #2182 were merged. Does this mean that https://github.com/djc/hyper/tree/quinn-h3 is getting close?
djc commentedon Jul 1, 2020
I've been discussing it with @seanmonstar, as far as I can tell he's still figuring out how he wants to go about it.
seanmonstar commentedon Jul 29, 2020
We've put together a proposal here: hyperium/h3#1
quentusrex commentedon Oct 4, 2020
With the proposal merged, what is the best way to see current status towards first MVP of the functionality? and with status, ways to support the effort?
djc commentedon Oct 4, 2020
To the best of my knowledge, work is ongoing in the h3 repo. There is a h3 channel in the Tokio Discord which you might join, as well.
(If by support the effort you mean financially, I might be available to accelerate the efforts on a consulting basis. If that is of interest, shoot me an email.)
seanmonstar commentedon Oct 7, 2020
Good point, I'll see about setting up a milestone with all the issues needed to get the design working. If by support the effort you mean to contribute code, as mentioned, there's an h3 Discord channel to discuss next features, and I'll get a milestone going. There is the general issue tracker, which already has some work split up.
quentusrex commentedon Dec 24, 2020
Congrats on the recent h3 progress(client side request fetching from cloudflare)!
Given the recent activity in h3, and the closing of several of the functionality related issues, what would the hyper next steps look like? I assume there'd be some kind of an h3 release(which would include the minimal public api docs, etc).
Any easier coding work in view?
seanmonstar commentedon Dec 31, 2020
Yes, an h3 0.1 release would be a necessary step. I've add a few more issues, labels, and a milestone, that should have some "easier" and some more involved work to get there.
Another step to figure out is how to actually provide the support in the
hypercrate. That's something I haven't thought too much about. I think some of the requirements though, considering the goal of stabilizing hyper into a 1.0 release, would require:h3library directly, so we can iterate onh3without it being breaking changes forhyper.http1andhttp2are.We can try to figure out both of these things in parallel, so thoughts are welcome!
quentusrex commentedon Mar 2, 2022
Looks like the only issue still attached to the v0.1 milestone is docs related. Is that accurate? https://github.com/hyperium/h3/milestone/1
17 remaining items
iMonZ commentedon Oct 21, 2023
ONLYA commentedon Dec 5, 2023
agavrel commentedon Jan 24, 2024
dengyunsheng250 commentedon Jan 25, 2025
lmtr0 commentedon Jan 28, 2025
dahankzter commentedon Feb 6, 2025
But surely the protocol has stabilized some more now. Afaict both Nginx and HAProxy supports it now. Is it still the case that it moves too fast to make it worth while to get into Hyper?
seanmonstar commentedon Feb 6, 2025
That's not at all the blocker. Work has been done in the
h3repo, and it's been tested in reqwest in an unstable feature, (explained in earlier comments). I'll update the top comment with the current status to make it easier to find, but there's no need to leave comments asking if this has progressed, it just pings a bunch of people who are watching.eveeifyeve commentedon Aug 3, 2025
What about looking into an unstable/experimental feature for hyper? Then people can use h3 in like axum or something as a test then when it becomes more stable introduce it slowly.
Cause I am looking into this more to add support for http3/quic in hyper as experimental.
seanmonstar commentedon Aug 4, 2025
Yea, I did put in the top comment that one of the next steps is to adding unstable support to hyper. I worked on this a little bit a couple weeks ago, and I've now gone ahead and opened a couple WIP pull requests, in case it helps others get started. See #3924 and #3925.
XChikuX commentedon Apr 10, 2026