# curl 8.16.0 - Product: curl (https://whatsnew.fyi/product/curl) - Vendor: curl - Date: 2025-09-10 - Version: 8.16.0 - Original notes: https://curl.se/ch/8.16.0.html - Permalink: https://whatsnew.fyi/product/curl/releases/8.16.0 - Labels: Platforms: Desktop What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **changed** — Bump minimum required mingw-w64 to v3.0 from v1.0 - **added** — Add --follow option - **added** — Add --out-null option - **added** — Add --parallel-max-host to limit concurrent connections per host - **changed** — Make --retry-delay and --retry-max-time accept decimal seconds - **added** — Cache negative name resolves - **changed** — Keep IP happy eyeballing attempts running - **changed** — Bump mbedtls minimum version required to 3.2.0 - **added** — Add curl_multi_get_offt - **added** — Add CURLMOPT_NETWORK_CHANGED to signal network changed - **changed** — Use the NETRC environment variable if set - **added** — Allow suffix behind a mail address for RFC 3461 in SMTP - **changed** — Make default TLS version be minimum 1.2 - **added** — Add support for --longopt=value syntax - **removed** — Drop msh3 from vquic - **added** — Support CURLOPT_READFUNCTION in websocket - **added** — Add %time{} to writeout - **fixed** — Fix segfault in tool_read_cb - **fixed** — Remove expired cookies before listing - **fixed** — Fix --disable-verbose build curl / Docs / Releases / Changes in 8.16.0 Related: Daily Snapshots Source repo Release log Pending Release 🠰 8.15.0 all changes 8.17.0 🠲 #### Changes in 8.16.0 - September 10 2025 8.16.0 8.16.0 Changes: - build: bump minimum required mingw-w64 to v3.0 (from v1.0) - curl: add --follow - curl: add --out-null - curl: add --parallel-max-host to limit concurrent connections per host - curl: make --retry-delay and --retry-max-time accept decimal seconds - hostip: cache negative name resolves - ip happy eyeballing: keep attempts running - mbedtls: bump minimum version required to 3.2.0 - multi: add curl_multi_get_offt - multi: add CURLMOPT_NETWORK_CHANGED to signal network changed - netrc: use the NETRC environment variable (first) if set - smtp: allow suffix behind a mail address for RFC 3461 - tls: make default TLS version be minimum 1.2 - tool_getparam: add support for `--longopt=value` - vquic: drop msh3 - websocket: support CURLOPT_READFUNCTION - writeout: add %time{} Bugfixes: - _PROTOCOLS.md: mention file:// is only for absolute paths - acinclude: --with-ca-fallback only works with OpenSSL - alpn: query filter - ares: destroy channel on shutdown - ares: use `ares_strerror()` to retrieve error messages - asyn-thrdd: fix --disable-socketpair builds - asyn-thrdd: fix Curl_async_pollset without socketpair - asyn-thrdd: fix no `HAVE_GETADDRINFO` builds - asyn-thrdd: manage DEFERRED and locks better - autotools: make curl-config executable - aws-lc: do not use large buffer - BINDINGS.md: add LibQurl - bufq: add integer overflow checks before chunk allocations - bufq: removed "Useless Assignment" - bufq: simplify condition - build: allow libtests/clients to use libcurl dependencies directly - build: disable `TCP_NODELAY` for emscripten - build: enable _GNU_SOURCE on GNU/Hurd - build: extend GNU C guards to clang where applicable, fix fallouts - build: fix build errors/warnings in rare configurations - build: fix disable-verbose - build: fix mingw-w64 version guard for mingw32ce - build: if no perl, fix to use the pre-built hugehelp, if present - build: link to Apple frameworks required by static wolfSSL - build: support LibreSSL native crypto lib with ngtcp2 1.15.0+ - build: tidy up compiler definition for tests - cf-https-connect: delete unused declaration - clang-tidy: disable `clang-analyzer-security.ArrayBound` - cmake: `CURL_CA_FALLBACK` only works with OpenSSL - cmake: capitalize 'Rustls' in the config summary - cmake: defer building `unitprotos.h` till a test target needs it - cmake: define `WIN32_LEAN_AND_MEAN` for examples - cmake: drop redundant unity mode for `curlinfo` - cmake: enable `-Wall` for MSVC 1944 - cmake: fix `ENABLE_UNIX_SOCKETS=OFF` with pre-fill enabled on unix - cmake: fix setting LTO properties on the wrong targets - cmake: fix to disable Schannel and SSPI for non-Windows targets - cmake: fix to restrict `SystemConfiguration` to macOS - cmake: honor `CMAKE_C_FLAGS` in test 1119 and 1167 - cmake: improve error message for invalid HTTP/3 MultiSSL configs - cmake: keep websockets disabled if HTTP is disabled - cmake: make `runtests` targets build the curl tool - cmake: make the ExternalProject test work - cmake: omit linking duplicate/unnecessary libs to tests & examples - cmake: re-add simple test target, and name it `tests` - cmake: set `CURL_DIRSUFFIX` automatically in multi-config builds - CODE_STYLE: sync with recent `checksrc.pl` updates - config-win32.h: do not use winsock2 `inet_ntop()`/`inet_pton()` - configure: if no perl, disable unity and shell completion, related tidy ups - configure: tidy up internal names in ngtcp2 ossl detection logic - connectdata: remove primary+secondary ip_quadruple - connection: terminate after goaway - contrithanks: fix for BSD `sed` tool - cookie: don't treat the leading slash as trailing - cookie: remove expired cookies before listing - curl-config: remove X prefix use - curl/system.h: fix for GCC 3.3.x and older - curl: make the URL indexes 64-bit - curl: tool_read_ _[Truncated at 4000 characters — full notes: https://curl.se/ch/8.16.0.html]_