HTTP3: ngtcp2 builds are no longer experimental

The other HTTP/3 backends are still experimental.

Closes #12235
This commit is contained in:
Daniel Stenberg 2023-10-17 18:04:50 +02:00
parent bf0e278a3c
commit 5f78cf503c
No known key found for this signature in database
GPG Key ID: 5CC908FDB71E12C2
3 changed files with 15 additions and 10 deletions

View File

@ -3099,7 +3099,6 @@ if test X"$want_nghttp3" != Xno; then
CURL_LIBRARY_PATH="$CURL_LIBRARY_PATH:$DIR_NGHTTP3" CURL_LIBRARY_PATH="$CURL_LIBRARY_PATH:$DIR_NGHTTP3"
export CURL_LIBRARY_PATH export CURL_LIBRARY_PATH
AC_MSG_NOTICE([Added $DIR_NGHTTP3 to CURL_LIBRARY_PATH]) AC_MSG_NOTICE([Added $DIR_NGHTTP3 to CURL_LIBRARY_PATH])
experimental="$experimental HTTP3"
) )
], ],
dnl not found, revert back to clean variables dnl not found, revert back to clean variables

View File

@ -19,6 +19,6 @@ Experimental support in curl means:
## Experimental features right now ## Experimental features right now
- The Hyper HTTP backend - The Hyper HTTP backend
- HTTP/3 support and options - HTTP/3 support (using the quiche or msh3 backends)
- The rustls backend - The rustls backend
- WebSocket - WebSocket

View File

@ -9,18 +9,19 @@ book describing the protocols involved.
## QUIC libraries ## QUIC libraries
QUIC libraries we are experimenting with: QUIC libraries we are using:
[ngtcp2](https://github.com/ngtcp2/ngtcp2) [ngtcp2](https://github.com/ngtcp2/ngtcp2)
[quiche](https://github.com/cloudflare/quiche) [quiche](https://github.com/cloudflare/quiche) - **EXPERIMENTAL**
[msh3](https://github.com/nibanks/msh3) (with [msquic](https://github.com/microsoft/msquic)) [msh3](https://github.com/nibanks/msh3) (with [msquic](https://github.com/microsoft/msquic)) - **EXPERIMENTAL**
## Experimental ## Experimental
HTTP/3 and QUIC support in curl is considered **EXPERIMENTAL** until further HTTP/3 support in curl is considered **EXPERIMENTAL** until further notice
notice. It needs to be enabled at build-time. when built to use *quiche* or *msh3*. Only the *ngtcp2* backend is not
experimental.
Further development and tweaking of the HTTP/3 support in curl will happen in Further development and tweaking of the HTTP/3 support in curl will happen in
the master branch using pull-requests, just like ordinary changes. the master branch using pull-requests, just like ordinary changes.
@ -34,14 +35,15 @@ To fix before we remove the experimental label:
Building curl with ngtcp2 involves 3 components: `ngtcp2` itself, `nghttp3` and a QUIC supporting TLS library. The supported TLS libraries are covered below. Building curl with ngtcp2 involves 3 components: `ngtcp2` itself, `nghttp3` and a QUIC supporting TLS library. The supported TLS libraries are covered below.
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
* `ngtcp2`: v1.0.1 * `ngtcp2`: v1.0.1
* `nghttp3`: v1.0.0 * `nghttp3`: v1.0.0
## Build with quictls ## Build with quictls
Build quictls (OpenSSL fork) OpenSSL does not offer the required APIs for building a QUIC client. You need
to use a TLS library that has such APIs and that works with *ngtcp2*.
Build quictls
% git clone --depth 1 -b openssl-3.1.4+quic https://github.com/quictls/openssl % git clone --depth 1 -b openssl-3.1.4+quic https://github.com/quictls/openssl
% cd openssl % cd openssl
@ -165,6 +167,8 @@ Build curl
# quiche version # quiche version
quiche support is **EXPERIMENTAL**
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. 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.
## build ## build
@ -195,6 +199,8 @@ Build curl:
one as of September 2023. Feel free to help us test it and improve it, but one as of September 2023. Feel free to help us test it and improve it, but
there is no point in filing bugs about it just yet. there is no point in filing bugs about it just yet.
msh3 support is **EXPERIMENTAL**
## Build Linux (with quictls fork of OpenSSL) ## Build Linux (with quictls fork of OpenSSL)
Build msh3: Build msh3: