Skip to content

Conversation

@vietj
Copy link
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 4 times, most recently from c5c72f7 to 5d984fc Compare November 16, 2025 22:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants