A command line tool and library for transferring data with URL syntax, supporting DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, POP3, POP3S, RTMP, RTMPS, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET, TFTP, WS and WSS. libcurl offers a myriad of powerful features
Find a file
Viktor Szakats 47f411c6d8
GHA: enable -Wunused-macros in clang-tidy jobs
Also fix fallouts found.

Windows clang-tidy CI job is a little pickier than I'd prefer due to the
`_CURL_TESTS_CONCAT=ON` option used there, and all macros considered
local, thus checked by the compiler. Upside: it revealed macro usage
dynamics in tests. If too annoying, `first.h` may be opted-out from the
concat logic. Some macros may also be deleted instead of `#if 0`-ing.

Follow-up to e0e56e9ae4 #21550
Follow-up to 5fa5cb3825 #20593

Closes #21554
2026-05-16 01:17:41 +02:00
.circleci
.github GHA: enable -Wunused-macros in clang-tidy jobs 2026-05-16 01:17:41 +02:00
CMake src: add curlx_memzero() to clear buffers securely 2026-05-16 00:26:46 +02:00
docs KNOWN_BUGS.md: remove fixed x509asn.1 bug 2026-05-16 01:03:16 +02:00
include tidy-up: prefer "initialize" with a 'z' 2026-05-15 11:49:06 +02:00
lib GHA: enable -Wunused-macros in clang-tidy jobs 2026-05-16 01:17:41 +02:00
LICENSES
m4 src: add curlx_memzero() to clear buffers securely 2026-05-16 00:26:46 +02:00
projects tidy-up: prefer "initialize" with a 'z' 2026-05-15 11:49:06 +02:00
scripts
src tidy-up: prefer "initialize" with a 'z' 2026-05-15 11:49:06 +02:00
tests GHA: enable -Wunused-macros in clang-tidy jobs 2026-05-16 01:17:41 +02:00
.clang-tidy.yml
.dir-locals.el
.editorconfig
.git-blame-ignore-revs
.gitattributes
.gitignore
.mailmap
acinclude.m4
appveyor.sh
appveyor.yml
CHANGES.md
CMakeLists.txt src: add curlx_memzero() to clear buffers securely 2026-05-16 00:26:46 +02:00
configure.ac src: add curlx_memzero() to clear buffers securely 2026-05-16 00:26:46 +02:00
COPYING
curl-config.in
Dockerfile
GIT-INFO.md
libcurl.pc.in
Makefile.am
README
README.md
RELEASE-NOTES
renovate.json
REUSE.toml
SECURITY.md

curl logo

curl is a command-line tool for transferring data from or to a server using URLs. It supports these protocols: DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, MQTTS, POP3, POP3S, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET, TFTP, WS and WSS.

Learn how to use curl by reading the man page or everything curl.

Find out how to install curl by reading the INSTALL document.

libcurl is the library curl is using to do its job. It is readily available to be used by your software. Read the libcurl man page to learn how.

Open Source

curl is Open Source and is distributed under an MIT-like license.

Contact

Contact us on a suitable mailing list or use GitHub issues/ pull requests/ discussions.

All contributors to the project are listed in the THANKS document.

Commercial support

For commercial support, maybe private and dedicated help with your problems or applications using (lib)curl visit the support page.

Website

Visit the curl website for the latest news and downloads.

Source code

Download the latest source from the Git server:

git clone https://github.com/curl/curl

Security problems

Report suspected security problems privately and not in public.

Backers

Thank you to all our backers 🙏 Become a backer.

Sponsors

Support this project by becoming a sponsor.