Skip to content

Commit 5f78cf5

Browse files
committed
HTTP3: ngtcp2 builds are no longer experimental
The other HTTP/3 backends are still experimental. Closes #12235
1 parent bf0e278 commit 5f78cf5

File tree

3 files changed

+15
-10
lines changed

3 files changed

+15
-10
lines changed

configure.ac

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3099,7 +3099,6 @@ if test X"$want_nghttp3" != Xno; then
30993099
CURL_LIBRARY_PATH="$CURL_LIBRARY_PATH:$DIR_NGHTTP3"
31003100
export CURL_LIBRARY_PATH
31013101
AC_MSG_NOTICE([Added $DIR_NGHTTP3 to CURL_LIBRARY_PATH])
3102-
experimental="$experimental HTTP3"
31033102
)
31043103
],
31053104
dnl not found, revert back to clean variables

docs/EXPERIMENTAL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,6 @@ Experimental support in curl means:
1919
## Experimental features right now
2020

2121
- The Hyper HTTP backend
22-
- HTTP/3 support and options
22+
- HTTP/3 support (using the quiche or msh3 backends)
2323
- The rustls backend
2424
- WebSocket

docs/HTTP3.md

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,19 @@ book describing the protocols involved.
99

1010
## QUIC libraries
1111

12-
QUIC libraries we are experimenting with:
12+
QUIC libraries we are using:
1313

1414
[ngtcp2](https://github.com/ngtcp2/ngtcp2)
1515

16-
[quiche](https://github.com/cloudflare/quiche)
16+
[quiche](https://github.com/cloudflare/quiche) - **EXPERIMENTAL**
1717

18-
[msh3](https://github.com/nibanks/msh3) (with [msquic](https://github.com/microsoft/msquic))
18+
[msh3](https://github.com/nibanks/msh3) (with [msquic](https://github.com/microsoft/msquic)) - **EXPERIMENTAL**
1919

2020
## Experimental
2121

22-
HTTP/3 and QUIC support in curl is considered **EXPERIMENTAL** until further
23-
notice. It needs to be enabled at build-time.
22+
HTTP/3 support in curl is considered **EXPERIMENTAL** until further notice
23+
when built to use *quiche* or *msh3*. Only the *ngtcp2* backend is not
24+
experimental.
2425

2526
Further development and tweaking of the HTTP/3 support in curl will happen in
2627
the master branch using pull-requests, just like ordinary changes.
@@ -34,14 +35,15 @@ To fix before we remove the experimental label:
3435

3536
Building curl with ngtcp2 involves 3 components: `ngtcp2` itself, `nghttp3` and a QUIC supporting TLS library. The supported TLS libraries are covered below.
3637

37-
For now, `ngtcp2` and `nghttp3` are still *experimental* which means their evolution bring breaking changes. Therefore, the proper version of both libraries need to be used when building curl. These are
38-
3938
* `ngtcp2`: v1.0.1
4039
* `nghttp3`: v1.0.0
4140

4241
## Build with quictls
4342

44-
Build quictls (OpenSSL fork)
43+
OpenSSL does not offer the required APIs for building a QUIC client. You need
44+
to use a TLS library that has such APIs and that works with *ngtcp2*.
45+
46+
Build quictls
4547

4648
% git clone --depth 1 -b openssl-3.1.4+quic https://github.com/quictls/openssl
4749
% cd openssl
@@ -165,6 +167,8 @@ Build curl
165167

166168
# quiche version
167169

170+
quiche support is **EXPERIMENTAL**
171+
168172
Since the quiche build manages its dependencies, curl can be built against the latest version. You are *probably* able to build against their main branch, but in case of problems, we recommend their latest release tag.
169173

170174
## build
@@ -195,6 +199,8 @@ Build curl:
195199
one as of September 2023. Feel free to help us test it and improve it, but
196200
there is no point in filing bugs about it just yet.
197201

202+
msh3 support is **EXPERIMENTAL**
203+
198204
## Build Linux (with quictls fork of OpenSSL)
199205

200206
Build msh3:

0 commit comments

Comments
 (0)