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] HTTP v3 support #3544

Open
tsmethurst opened this issue Nov 14, 2024 · 4 comments
Open

[feature] HTTP v3 support #3544

tsmethurst opened this issue Nov 14, 2024 · 4 comments
Labels
enhancement New feature or request

Comments

@tsmethurst
Copy link
Contributor

Currently via gin-gonic we support HTTP version 2 and below. It could be handy to investigate what's required for providing HTTP v3 support, which apparently offers quite some performance enhancements: https://en.wikipedia.org/wiki/HTTP/3.

From what I can tell, Caddy already has support for HTTP v3, and since that's written in Go it might be a good source of inspiration for us :)

@tsmethurst tsmethurst added the enhancement New feature or request label Nov 14, 2024
@Fastidious
Copy link

How will this apply if someone is already using Caddy to proxy traffic to GtS?

@tsmethurst
Copy link
Contributor Author

How will this apply if someone is already using Caddy to proxy traffic to GtS?

Well, if they've got HTTP3 enabled in Caddy, then the connection will be HTTP3 to Caddy, then HTTP2 to GtS most likely. If we implement HTTP3 in GtS then it'll be HTTP3 on every hop instead.

@andriibeee
Copy link

both caddy and gin use go-quic for http/3 handling and it seems like gin already supports it https://github.com/gin-gonic/gin/blob/e46bd521859fdfc83c508f1d42c92cb7f91e9fcb/gin.go#L604

@NyaaaWhatsUpDoc
Copy link
Member

NyaaaWhatsUpDoc commented Nov 23, 2024

HTTP/3 is a totally different protocol, and it would be relying on those connecting to follow the Alt-Svc header to establish an HTTP/3 connection. this is fine for client to server connections, but semantically for server to server connections this feels a little off since it's effectively having redirects on the AP endpoints. it would also require updating the http client library to even support it too.

i think this is probably worth waiting until Go finish their standard library implementation of it and see from there so we can hopefully just enable it transparently, at least for the server-to-server side of things.

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

No branches or pull requests

4 participants