Skip to content

vquic: drop support for OpenSSL-QUIC#20226

Closed
bagder wants to merge 1 commit intomasterfrom
bagder/rm-openssl-quic
Closed

vquic: drop support for OpenSSL-QUIC#20226
bagder wants to merge 1 commit intomasterfrom
bagder/rm-openssl-quic

Conversation

@bagder
Copy link
Member

@bagder 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

@bagder bagder added the HTTP/3 h3 or quic related label Jan 9, 2026
@github-actions github-actions bot added tests CI Continuous Integration labels Jan 9, 2026
@bagder bagder added the feature-window A merge of this requires an open feature window label Jan 9, 2026
@bagder bagder marked this pull request as ready for review January 9, 2026 09:34
@bagder bagder requested a review from Copilot January 9, 2026 09:34
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@bagder
Copy link
Member Author

bagder commented Jan 9, 2026

augment review

@augmentcode
Copy link

augmentcode bot commented Jan 9, 2026

🤖 Augment PR Summary

Summary: 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:

  • Removes the OpenSSL-QUIC implementation (lib/vquic/curl_osslq.c/.h) from the source tree/build.
  • Drops CMake and autotools toggles/flags for it (e.g., `USE_OPENSSL_QUIC`, `--with-openssl-quic`).
  • Updates CI workflows to stop building/testing OpenSSL-QUIC variants on Linux/macOS/Windows.
  • Updates docs to remove OpenSSL-QUIC build instructions and record the backend as removed.
  • Removes OpenSSL-QUIC-specific test skips that existed due to backend flakiness.

Technical Notes: Users building with “vanilla” OpenSSL can still use HTTP/3 via the ngtcp2+nghttp3 backend.

🤖 Was this summary useful? React with 👍 or 👎

Copy link

@augmentcode augmentcode bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review completed. 1 suggestions posted.

Fix All in Augment

Comment augment review to trigger a new review at any time.

@bagder bagder force-pushed the bagder/rm-openssl-quic branch from 7f06567 to 35e7401 Compare January 14, 2026 22:37
- 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
@bagder bagder force-pushed the bagder/rm-openssl-quic branch from 35e7401 to 6aaac9d Compare January 17, 2026 21:49
@bagder bagder closed this in 6aaac9d Jan 17, 2026
@bagder bagder deleted the bagder/rm-openssl-quic branch January 17, 2026 22:06
travislee89 added a commit to stunnel/static-curl that referenced this pull request Mar 11, 2026
curl 8.19.0 drops support for OpenSSL-QUIC
curl/curl#20226
travislee89 added a commit to stunnel/static-curl that referenced this pull request Mar 11, 2026
curl 8.19.0 drops support for OpenSSL-QUIC
curl/curl#20226
travislee89 added a commit to stunnel/static-curl that referenced this pull request Mar 11, 2026
curl 8.19.0 drops support for OpenSSL-QUIC
curl/curl#20226
travislee89 added a commit to stunnel/static-curl that referenced this pull request Mar 11, 2026
curl 8.19.0 drops support for OpenSSL-QUIC
curl/curl#20226
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CI Continuous Integration feature-window A merge of this requires an open feature window HTTP/3 h3 or quic related tests

Development

Successfully merging this pull request may close these issues.

2 participants