-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
HTTP/3 support #8559
HTTP/3 support #8559
Conversation
# Conflicts: # gradle/libs.versions.toml
❌ Java CI failed: https://ge.micronaut.io/s/pep52ujuucxnm |
❌ GraalVM CE CI 17 dev failed: https://ge.micronaut.io/s/ipbmci72vcf5y |
SonarCloud Quality Gate failed. |
# Conflicts: # gradle/libs.versions.toml # http-server-netty/src/main/java/io/micronaut/http/server/netty/types/files/NettySystemFileCustomizableResponseType.java
# Conflicts: # http-client/build.gradle
❌ Java CI failed: https://ge.micronaut.io/s/qnhyl7kwjv6iq |
Can you address the sonar bugs https://sonarcloud.io/project/issues?id=micronaut-projects_micronaut-core&pullRequest=8559&resolved=false&types=BUG |
they are false positives |
in that case you can suppress them by adding |
@graemerocher ive disabled them in the sonar web interface, is that enough? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you update the jdkClient docs to add Http3 to the list of unsupported things
And I guess we should add a check here to fail if Http3 is selected?
SonarCloud Quality Gate failed. |
This PR adds HTTP/3 support for the server and client based on the experimental https://github.com/netty/netty-incubator-codec-http3 . The code is very similar to the existing HTTP/2 stack. The major differences relate to UDP vs TCP.
The HTTP/3 server is activated through a special listener protocol family
QUIC
(maybe this should be calledUDP
?). The client is activated by setting thealpn-modes
to[h3]
(switching to udp based on this property is a bit weird, but ALPN still exists with HTTP/3. eventually, falling back on tcp would be nice).Server push is currently not supported. The test case for it in particular (netty-based) would need to be rewritten for UDP.
There are still a bunch of workarounds for netty bugs in this code. This is why this PR is a draft. The upstream PRs are: