Conversation
bagder
commented
Jan 9, 2026
- It is slower and uses more memory than the alternatives and is only experimental in curl.
- We disable a few tests for OpenSSL-QUIC because of flakiness
- It gets little attention from OpenSSL and we have no expectation of the major flaws getting corrected anytime soon.
- No one has spoken up for keeping it
- curl users building with vanilla OpenSSL can still use QUIC through the means of ngtcp2
There was a problem hiding this comment.
Pull request overview
This pull request removes support for OpenSSL-QUIC from curl. OpenSSL-QUIC was an experimental HTTP/3 backend that used OpenSSL's QUIC implementation. The removal is justified due to performance issues, high memory usage, lack of attention from OpenSSL maintainers, and the availability of better alternatives like ngtcp2.
Key Changes:
- Removes 2509 lines of OpenSSL-QUIC implementation code (curl_osslq.c and curl_osslq.h)
- Removes all build system support (CMake, autotools) for --with-openssl-quic option
- Removes OpenSSL-QUIC specific test skips (tests are now expected to run with alternative QUIC implementations)
- Updates documentation to remove OpenSSL-QUIC build instructions and marks it as removed in deprecation documentation
- Updates CI workflows to remove OpenSSL-QUIC specific builds
Reviewed changes
Copilot reviewed 21 out of 21 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| lib/vquic/curl_osslq.c | Entire OpenSSL-QUIC implementation file removed (2458 lines) |
| lib/vquic/curl_osslq.h | Header file for OpenSSL-QUIC removed (51 lines) |
| lib/vquic/vquic.c | Removed OpenSSL-QUIC include and version/factory function calls |
| lib/vtls/openssl.c | Removed USE_OPENSSL_QUIC conditional compilation block |
| lib/Makefile.inc | Removed curl_osslq.c and curl_osslq.h from build sources |
| lib/curl_config-cmake.h.in | Removed USE_OPENSSL_QUIC CMake define |
| m4/curl-openssl.m4 | Removed OpenSSL QUIC capability detection code |
| configure.ac | Removed --with-openssl-quic option and related configuration logic |
| CMakeLists.txt | Removed USE_OPENSSL_QUIC option and related checks |
| tests/http/testenv/curl.py | Removed outdated comment about OpenSSL-QUIC connect time issue |
| tests/http/test_*.py | Removed OpenSSL-QUIC specific test skip conditions (5 files) |
| docs/HTTP3.md | Removed OpenSSL-QUIC build instructions section (54 lines) |
| docs/INSTALL-CMAKE.md | Removed USE_OPENSSL_QUIC documentation |
| docs/DEPRECATE.md | Moved OpenSSL-QUIC from planned removal to removed list |
| .github/workflows/windows.yml | Removed --with-openssl-quic from test configuration |
| .github/workflows/macos.yml | Removed -DUSE_OPENSSL_QUIC=ON from test configurations (3 instances) |
| .github/workflows/http3-linux.yml | Removed openssl-quic test job entries (2 variants) |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
augment review |
🤖 Augment PR SummarySummary: This PR removes curl’s experimental OpenSSL-QUIC (OpenSSL’s built-in QUIC stack) HTTP/3 backend due to higher resource usage, poorer performance, flakiness, and low upstream maintenance. Changes:
Technical Notes: Users building with “vanilla” OpenSSL can still use HTTP/3 via the ngtcp2+nghttp3 backend. 🤖 Was this summary useful? React with 👍 or 👎 |
7f06567 to
35e7401
Compare
- It is slower and uses more memory than the alternatives and is only experimental in curl. - We disable a few tests for OpenSSL-QUIC because of flakiness - It gets little attention from OpenSSL and we have no expectation of the major flaws getting corrected anytime soon. - No one has spoken up for keeping it - curl users building with vanilla OpenSSL can still use QUIC through the means of ngtcp2 Closes #20226
35e7401 to
6aaac9d
Compare
curl 8.19.0 drops support for OpenSSL-QUIC curl/curl#20226
curl 8.19.0 drops support for OpenSSL-QUIC curl/curl#20226
curl 8.19.0 drops support for OpenSSL-QUIC curl/curl#20226
curl 8.19.0 drops support for OpenSSL-QUIC curl/curl#20226