curl and libcurl 8.21.0 Public curl releases: 275 Command line options: 273 curl_easy_setopt() options: 308 Public functions in libcurl: 100 Authors: 1464 Contributors: 3665 This release includes the following changes: This release includes the following bugfixes: o asyn-thrdd: fix result processing without wakeup socketpair [2] o gtls: fix some typos [15] o lib: two minor typos [16] o libcurl-easy.md: minor clarifications [19] o mqtt: validate PINGRESP and DISCONNECT have remaining_length == 0 [7] o setopt: changing the proxy port is also a proxy change [23] o show-headers.md: mention bold headers and --no-styled-output [17] o tool_formparse.c: fix two minor comment typos [25] o tool_formparse: polish error message + make two functions static [1] o user-agent.md: mention double quotes too [3] This release includes the following known bugs: See https://curl.se/docs/knownbugs.html For all changes ever done in curl: See https://curl.se/changes.html Planned upcoming removals include: o local crypto implementations o NTLM o SMB o TLS-SRP support See https://curl.se/dev/deprecate.html This release would not have looked like this without help, code, reports and advice from friends like these: Daniel Stenberg, dependabot[bot], Jeremy Nicoll, Raymond Steen, Sollace on github, Stefan Eissing, Viktor Szakats (7 contributors) References to bug reports and discussions on issues: [1] = https://curl.se/bug/?i=21510 [2] = https://curl.se/bug/?i=21476 [3] = https://curl.se/mail/archive-2026-04/0029.html [7] = https://hackerone.com/reports/3702718 [15] = https://curl.se/bug/?i=21498 [16] = https://curl.se/bug/?i=21496 [17] = https://curl.se/bug/?i=21495 [19] = https://curl.se/bug/?i=21491 [23] = https://curl.se/bug/?i=21485 [25] = https://curl.se/bug/?i=21480