Skip to content

Conversation

@vietj
Copy link
Member

@vietj vietj commented Jan 26, 2026

Motivation

With the advent of HTTP/3 support we need to improve the configuration of the Vert.x HTTP client.

The initial version of HTTP/3 was implemented using a new Http3ClientOptions which was only suitable to configure HTTP/3 only. Configuration of a client capable of using the TCP and QUIC transport was not public and complex from the API perspective since HttpClientOptions is strongly coupled to TCP and holds SSL configuration as well.

The choice has been made to come up with a new configuration API that makes the configuration of the various versions of the protocol a nested API. HttpClientOptions defines bits for HTTP/1.1 and HTTP/2, both unqualified (e.g. pipelining/keepAlive for HTTP/1.x) or prefix qualified for HTTP/2 (e.g. http2KeepAliveTimeout). The new configuration API encapsulates those in version specific API.

The new API also leverages the Duration API to replace the previous (primitive type, time unit) couples.

Changes

  • Improve the implementation scoped HttpClientConfig API to simplify the configuration
  • Make the new config API public and replace Http3ClientOptions that is not necessary anymore

@vietj vietj added this to the 5.1.0 milestone Jan 26, 2026
@vietj vietj self-assigned this Jan 26, 2026
@vietj vietj mentioned this pull request Jan 26, 2026
2 tasks
@vietj vietj linked an issue Jan 26, 2026 that may be closed by this pull request
2 tasks
@vietj vietj force-pushed the http-client-config-improvements branch 3 times, most recently from 73a71a1 to 030bbf3 Compare January 26, 2026 16:56
@vietj vietj force-pushed the http-client-config-improvements branch from 030bbf3 to 74670dc Compare January 26, 2026 17:26
@vietj vietj merged commit 426de26 into master Jan 27, 2026
9 of 13 checks passed
@vietj vietj deleted the http-client-config-improvements branch January 27, 2026 08:10
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.

Configuration of HTTP/3

2 participants