Skip to content

HTTP/3 API and implementation#5756

Closed
vietj wants to merge 0 commit into
masterfrom
http3-impl
Closed

HTTP/3 API and implementation#5756
vietj wants to merge 0 commit into
masterfrom
http3-impl

Conversation

@vietj
Copy link
Copy Markdown
Member

@vietj vietj commented Oct 20, 2025

Implementation of HTTP API with HTTP/3.

This implementation makes use of Vert.x Quic stream implementation.

Todo

  • implementation
    • outer context integration and testing
    • metrics
    • tracing
    • send file
    • push
      • client
      • server
    • network activity logging
  • API
    • breaking changes
      • identify
      • decide
    • dev
      • options
      • connection close payload
    • request cancellation superseding request reset
  • Improve Netty Quic reset
  • go away strategies ?
  • documentation
  • ...

Breaking changes

Implementing HTTP/3 implies a few potential breaking changes, the strategy to handle them will be on a case by case basis and attempt to minimize the amount of breaking changes to delay them until Vert.x 6 is implemented, here is a non exhaustive list:

  • stream id declares long type instead of int
  • settings
  • ...

H2/H3 discrepancies

Shutdown / GoAway

  • H2: GoAway carries stream id + error code + debug data
  • H3: GoAway only carries stream id, but quic can close with an error code + reason data, error code seems similar but reason is not the same semantic than debug.

Reset semantic

  • H2: reset means immediate termination of a stream
  • H3: reset only applies to the stream outbound and means no more data will be set

Introduce stream cancellation that performs the most adapted operation according to the protocol:

  • H2 : reset with 0x8 (CANCEL) code
  • H3 : reset or abort reading with REQUEST_CANCELLED code

@vietj vietj added this to the 5.1.0 milestone Oct 20, 2025
@vietj vietj self-assigned this Oct 21, 2025
@vietj vietj force-pushed the http3-impl branch 8 times, most recently from 7fda2f3 to 45fa673 Compare October 23, 2025 15:26
@vietj vietj force-pushed the http3-impl branch 2 times, most recently from 46cf2ad to f434216 Compare October 29, 2025 10:31
@vietj vietj force-pushed the http3-impl branch 2 times, most recently from e45eff6 to 7dac58e Compare November 4, 2025 23:01
@vietj vietj force-pushed the http3-impl branch 9 times, most recently from 80ff016 to fe77e7e Compare November 19, 2025 08:46
@vietj vietj closed this Nov 19, 2025
@vietj vietj removed this from the 5.1.0 milestone Nov 19, 2025
@vietj vietj removed the enhancement label Nov 19, 2025
@vietj
Copy link
Copy Markdown
Member Author

vietj commented Nov 19, 2025

See #5802

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant