Roadmap
5.1
5.x
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
- ...
Open concerns
Compression
There is no facility for payload compression and current one for HTTP/1 and HTTP/2 are not reusable.
Discovery
No support for HTTPS resource records in DNS resolver, this will be implemented in 5.0 using alternative services.
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
Keep alive timeout semantic
- HTTP/1.1 / H2: connection level
- H3: stream level
Contribution
bibi
Roadmap
5.1
5.x
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:
Open concerns
Compression
There is no facility for payload compression and current one for HTTP/1 and HTTP/2 are not reusable.
Discovery
No support for HTTPS resource records in DNS resolver, this will be implemented in 5.0 using alternative services.
Shutdown / GoAway
GoAwaycarries stream id + error code + debug dataGoAwayonly 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
Introduce stream cancellation that performs the most adapted operation according to the protocol:
0x8(CANCEL) codeKeep alive timeout semantic
Contribution
bibi