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

gRPC HTTP/3 support in Tonic #339

Closed
quentusrex opened this issue May 3, 2020 · 10 comments
Closed

gRPC HTTP/3 support in Tonic #339

quentusrex opened this issue May 3, 2020 · 10 comments
Labels
A-tonic C-enhancement Category: New feature or request

Comments

@quentusrex
Copy link

Feature Request

Tracking issue for supporting client and server http3 transport for gRPC services. Functionality should mostly be inherited by dependency crates, but would likely need exposure through tonic layer.

Crates

In Tonic:
https://github.com/hyperium/tonic/blob/master/tonic/src/transport/mod.rs

Inheriting from Hyper:
hyperium/hyper#1818

Inheriting from Quinn:
https://github.com/djc/quinn/issues?q=is%3Aissue+is%3Aopen+label%3Ah3

Motivation

To have a rust and tokio framework that is futures based and supports H3 for machine to machine APIs, as well as upcoming browser to server H3 requests.

Alternatives

There are other libraries that implement H3 like quiche, but they all still require significant work to get gRPC based services working.

@quentusrex quentusrex changed the title gRPC HTTP/3 support gRPC HTTP/3 support in Tonic May 3, 2020
@LucioFranco LucioFranco added A-tonic C-enhancement Category: New feature or request labels May 4, 2020
@LucioFranco
Copy link
Member

Thanks for opening this! You are on the right track here, once hyper gets h3 we can easily expose it for tonic.

@LucioFranco
Copy link
Member

Initial progress is here hyperium/h3#1

@davidpdrsn
Copy link
Member

I think I'll close this for now. Until hyper supports h3 there isn't much we can do.

@nashley
Copy link
Contributor

nashley commented Jul 12, 2022

Here's the issue for adding h3 support into hyper: hyperium/hyper#1818

As of writing, it's currently waiting on this exploratory effort to add h3 support to reqwest, which will inform how h3 is supported in hyper: seanmonstar/reqwest#1558

@usmonie
Copy link

usmonie commented Jan 6, 2023

any news?

@davidpdrsn
Copy link
Member

@usmonie See the linked issues. If nothings been posted there then there is probably nothing new. No need to post on old issues.

@makorne
Copy link

makorne commented Jul 19, 2023

waiting on this exploratory effort to add h3 support to reqwest,
See the linked issues. If nothings been posted there then there is probably nothing new.

@davidpdrsn But looks like ...
This was done in seanmonstar/reqwest#1599, and released in v0.11.15
Current 0.11.18

@davidpdrsn
Copy link
Member

That's reqwest. What about hyper?

@makorne
Copy link

makorne commented Jul 20, 2023

As of writing, it's currently waiting on this exploratory effort to add h3 support to reqwest

Based on this, it seems that adding h3 to reqwest was the main problem.

@TBBle
Copy link

TBBle commented Oct 24, 2024

As far as I understand, it was hyper waiting on reqwest (for client-side support), and even as of 0.12.5, reqwest's http/3 support still requires an experimental flag; my understanding from hyperium/hyper#1818 is that Hyper is waiting for that to stabilise before taking it on. The request-side issue for this is seanmonstar/reqwest#2303.

So long-story-short, it still appears to be blocked in a grand-dependency in a PRs-welcome state.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-tonic C-enhancement Category: New feature or request
Projects
None yet
Development

No branches or pull requests

7 participants