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

[💡FEATURE REQUEST]: Support for QUIC or HTTP/3 #926

Closed
cidious opened this issue May 19, 2020 · 15 comments · Fixed by roadrunner-server/http#193
Closed

[💡FEATURE REQUEST]: Support for QUIC or HTTP/3 #926

cidious opened this issue May 19, 2020 · 15 comments · Fixed by roadrunner-server/http#193
Assignees
Labels
C-enhancement Category: enhancement. Meaning improvements of current module, transport, etc.. help-heeded-medium Call for participation: Experience needed to fix: Medium / intermediate P-HTTP Plugin: HTTP P-new-plugin Plugin: brand new plugin S-RFC Request: Request for comments
Milestone

Comments

@cidious
Copy link

cidious commented May 19, 2020

Hi guys,
thank you for the project.

Do you plan to implement the QUIC protocol AKA HTTP/3?

I cannot into Golang, but i've found several implementations of QUIC: 1 2 3

According to the article from Uber, this should be a very promising feature.

@rustatian
Copy link
Member

@cidious Quick is currently in the beta stage (or alfa might be). There is a draft document about standard link. I think, when it is supported by default by major browsers (not via the config flags) we will add the support of QUIC.

@rustatian
Copy link
Member

Also, if this request is popular, we will add support for sure ASAP :)
From my POV I totally agree with you, this def will be a very promising feature.

@Alex-Bond
Copy link
Contributor

Technically it's still in draft, but Google already using it in production.

@cidious
Copy link
Author

cidious commented Jun 2, 2021

The IETF just published QUIC as RFC 9000, supported by RFC 9001, RFC 9002, and RFC 8999. That means QUIC version 1 is officially formalized, and QUIC deployments will now move away from using temporary draft versions to the newly minted version 1. (HTTP/3, the version of HTTP that runs on QUIC, is following closely behind, and should be published soon.)

This news is a big deal, both for the IETF and for the internet ecosystem.

@rustatian rustatian transferred this issue from roadrunner-server/roadrunner Sep 18, 2021
@rustatian rustatian changed the title [RFC] [FEATURE REQUEST] QUIC or HTTP/3 [FEATURE REQUEST] QUIC or HTTP/3 Sep 18, 2021
@rustatian rustatian changed the title [FEATURE REQUEST] QUIC or HTTP/3 [FEATURE REQUEST] Support for QUIC or HTTP/3 Sep 18, 2021
@rustatian
Copy link
Member

ref: golang/go#32204

@rustatian rustatian changed the title Dec 25, 2021
@rustatian rustatian transferred this issue from roadrunner-server/roadrunner-plugins Jan 16, 2022
@rustatian rustatian added C-enhancement Category: enhancement. Meaning improvements of current module, transport, etc.. P-HTTP Plugin: HTTP P-new-plugin Plugin: brand new plugin S-RFC Request: Request for comments labels Jan 16, 2022
@rustatian rustatian moved this to Discuss in General Jan 16, 2022
@rustatian rustatian added this to the v2.11.0 milestone Jan 16, 2022
@rustatian rustatian moved this from Discuss to Todo in General Jul 7, 2022
@rustatian
Copy link
Member

Accepted for the v2.11.0. It will be in the http plugin: https://github.com/roadrunner-server/http

@rustatian
Copy link
Member

rustatian commented Jul 12, 2022

http/3 is now standardized: https://www.rfc-editor.org/rfc/rfc9114.html

EDIT: Since we have a standard now, I'd rather wait for the Go stdlib implementation.

@rustatian rustatian removed this from the v2.11.0 milestone Jul 12, 2022
@rustatian
Copy link
Member

HTTP(3) crypto/tls accepted: golang/go#44886

@marten-seemann
Copy link

Hi guys, author of quic-go here 👋. Have you considered using quic-go for QUIC support in roadrunner?

quic-go is quite mature at this point. The project has been around for about 8 years, and (among many others) it powers HTTP/3 support in the Caddy web server and QUIC support in IPFS. We’ll actually use the new crypto/tls API (golang/go#44886) linked in the comment above as soon as Go 1.21 is released.

I’d be happy to give you some pointers for integrating it, if there’s interest :)

@rustatian
Copy link
Member

Hey @marten-seemann 👋🏻 nice to meet you :)
Yes, I am waiting for the Go 1.21 release to start working on the integration ⚡
Thanks for the quic-go, nice job 👍🏻

@rustatian rustatian self-assigned this Jun 13, 2023
@rustatian rustatian added this to the v2023.3.0 milestone Jun 13, 2023
@marten-seemann
Copy link

The quic-go v0.37.x releases now support Go 1.21.

@rustatian rustatian modified the milestones: v2023.3.0, v2024 Aug 15, 2023
@rustatian
Copy link
Member

That's nice, added to the v2024 milestone 👍🏻

@rustatian rustatian added the help-heeded-medium Call for participation: Experience needed to fix: Medium / intermediate label Aug 15, 2023
@rustatian
Copy link
Member

Will be added much faster I think, under the new RR -e (experimental) flag ❤️

@readycool
Copy link

Are there any plans of replacing quic-go with x/net/quic once it gets stable?

@rustatian
Copy link
Member

Hey @readycool 👋
x/net/quic ticket and implementation in go is still in progress.
We're working on adding http3 support in RoadRunner, but, since RR is not a web-server it is going slow.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-enhancement Category: enhancement. Meaning improvements of current module, transport, etc.. help-heeded-medium Call for participation: Experience needed to fix: Medium / intermediate P-HTTP Plugin: HTTP P-new-plugin Plugin: brand new plugin S-RFC Request: Request for comments
Projects
Status: ✅ Done
Status: Todo
7 participants