curl and libcurl is a tool for transferring files using URL syntax. It supports HTTP, HTTPS, FTP, FTPS, SCP, SFTP, TFTP, DICT, TELNET, LDAP, POP3, IMAP, SMTP, RTSP, RTMP, and FILE, as well as HTTP-post, HTTP-put, cookies, FTP upload, resumed transfers, passwords, port numbers, SSL certificates, Kerberos, and proxies. It is powered by libcurl, the client-side URL transfer library. There are bindings to libcurl for about 40 languages and environments.
Homepage
Download
Recent Releases
8.9.102 Sep 2024 15:05
minor bugfix:
8.9.1 8.9.1 8.9.1 only .
:
.
cmake: detect `libssh` via `pkg-config`.
cmake: detect `nettle` when building with GnuTLS.
cmake: drop `if(PKG_CONFIG_FOUND)` guard for `pkg_check_modules()`.
configure: limit `__builtin_available` test to Darwin.
connect: connection shutdown for event based processing.
contrithanks.sh: use -F with -v to match lines as strings.
curl: more defensive socket code for --ip-tos.
CURLOPT_SSL_CTX_FUNCTION.md: mention CA caching.
CURLSHOPT_SHARE.md: mention sessions/cookies as not thread-safe.
example/multi-uv: remove the use of globals.
ftpserver.pl: make POP3 LIST serve content from the test file.
GHA/windows: increase timeout for vcpkg build step.
lib: survive some NULL input args.
macos: Apple SDK workaround for non-macOS targets.
misc: cleanup after removing years from copyright.
os400: build cli manual..
os400: workaround an IBM ASCII run-time library .
RELEASE-PROCEDURE.md: remove the initial build step.
runtests: fold timing details with GHA, sync `-r` tflags.
tests: provide FTP directory contents in the test file.
tidy-up: URL updates.
TODO: thread-safe sharing.
transfer: speed limiting for 32bit systems.
vtls: avoid forward declaration in MultiSSL builds.
wolfSSL: allow wolfSSL apos;s implementation of kyber to be used.
wolfssl: avoid calling get_cached_x509_store if store is uncachable.
wolfssl: CA store share .
x509asn1: unittests and for gtime2str.
.
.
.
8.9.013 Aug 2024 06:25
major bugfix:
8.9.0 8.9.0 8.9.0 only .
Changes:
.
curl: add --ip-tos (IP Type of Service / Traffic Class).
curl: add --mptcp.
curl: add --vlan-priority.
curl: add -w apos; num_retries apos;.
gnutls: support CA caching.
mbedtls: support CURLOPT_CERTINFO.
noproxy: patterns need to be comma separated.
socket: support binding to interface *AND IP.
tcpkeepalive: add CURLOPT_TCP_KEEPCNT and --keepalive-cnt.
urlapi: add CURLU_NO_GUESS_SCHEME.
wolfssl: support CA caching.
.
:
.
(lib)curl.rc: set deflag also for `CURLDE` and `UNITTESTS`.
asyn-thread: avoid using GetAddrInfoExW with impersonation.
aws-sigv4: url encode the canonical path.
BINDINGS: update java link to one that exists.
build: add De, TrackMemory, ECH to feature list.
build: add more supported attributes to the IAR compiler.
build: llvm 16 or older + Xcode 15 or newer, and gcc.
build: llvm 17 and older + macOS SDK 14.4 and newer.
build: sync warning options between autotools, cmake compilers.
build: tidy up `__builtin_available` feature checks (Apple).
build: untangle `CURLDE` and `DEBUILD` macros.
build: use `#error` instead of invalid syntax.
cd2nroff: convert two warnings to errors.
cd2nroff: use an empty quot;## quot; to signal end of.IP sequence.
cf-socket: improve SO_SNDBUF update for Winsock.
cf-socket: optimize curlx_nonblock() and check its return error.
cf-socket: remove obsolete recvbuf.
cf-socket: remove two quot;useless quot; assignments.
cfilters: make Curl_conn_connect always assign apos;done apos;.
cmake: add CURL_USE_GSASL option with detection + CI test.
cmake: allow `ENABLE_CURLDE=OFF` with `ENABLE_DE=ON`.
cmake: allow SOVERSION override with `CURL_LIBCURL_SOVERSION`.
cmake: alpha-sort feature list.
cmake: always build unit tests with the `testdeps` target.
cmake: bring `curl-config.cmake` r to `FindCURL`.
cmake: create `configurehelp.pm` like autotools does.
cmake: delete unused `HAVE_LIBSSH2`, `HAVE_LIBSOCKET` macros.
cmake: detect `libidn2` also via
8.8.023 May 2024 15:45
major bugfix:
.
8.8.0.
Changes:
.
curl_version_info: provide librtmp version.
file: add support for directory listings.
idn: add native AppleIDN (icucore) support for macOS/iOS.
lib: add curl_multi_waitfds.
mbedTLS: implement CURLOPT_SSL_CIPHER_LIST option.
NTLM_WB: drop support.
TLS: add support for ECH (Encrypted Client Hello).
urlapi: add CURLU_GET_EMPTY for empty queries and fragments.
.
:
.
appveyor: drop unnecessary `--clean-first` cmake option.
appveyor: guard against crash-build with VS2008.
appveyor: make gcc 6 mingw64 job build-only.
asyn-thread: curl_global_cleanup crash in Windows.
asyn-thread: Curl_thread_create result check.
autotools: delete unused functions.
autotools: `HAVE_IOCTLSOCKET_FIONBIO` test for gcc 14.
autotools: only probe for SGI MIPS compilers on IRIX.
bearssl: compiler warnings.
bearssl: use common code for cipher suite lookup.
bufq: remove duplicate word in comment.
-BOUNTY.md: clarify the third party situation.
build: prefer `USE_IPV6` macro internally (was: `ENABLE_IPV6`).
build: remove MacOSX-Framework script.
cd2nroff/manage: use UTC when SOURCE_DATE_EPOCH is set.
cf-https-connect: use timeouts as unsigned ints.
cf-socket: don apos;t try getting local IP without socket.
cf-socket: remove references to l_ip, l_port.
ci: add curl-for-win builds: Linux MUSL, macOS, Windows.
cmake: add `BUILD_EXAMPLES` option to build examples.
cmake: add librtmp/rtmpdump option and detection.
cmake: check fseeko after detecting HAVE_FILE_OFFSET_BITS.
cmake: do not pass linker flags to the static library tool.
cmake: enable `-pedantic-errors` for clang when `CURL_WERROR=ON`.
cmake: FindNGHTTP2 add static lib name to find_library call.
cmake: `CURL_WERROR=ON` for old CMake and use it in GHA/linux-old.
cmake: `HAVE_IOCTLSOCKET_FIONBIO` test with gcc 14.
cmake: up `DEPENDS` filename.
cmake: forward `USE_LIBRTMP` option to C.
cmake: generate misc manpages and install `mk-ca-bundle.pl`.
cmake: initialize `BUILD_TESTING` befor
8.7.129 Mar 2024 01:45
minor bugfix:
.
8.7.1.
:
.
empty tool_hugehelp.c file.
.
.
.
8.6.001 Feb 2024 21:25
major bugfix:
.
8.6.0.
Changes:
.
add CURLE_TOO_LARGE.
add CURLINFO_QUEUE_TIME_T.
add CURLOPT_SERVER_RESPONSE_TIMEOUT_MS: add.
asyn-thread: use GetAddrInfoExW on gt;= Windows 8.
configure: make libpsl detection failure cause error.
docs/cmdline: change to.md for cmdline docs.
docs: introduce quot;curldown quot; for libcurl man page format.
runtests: support -gl. Like -g but for lldb..
.
:
.
altsvc: free apos;as apos; when returning error.
appveyor: replace PowerShell with bash + parallel autotools.
appveyor: switch to out-of-tree builds.
asyn-ares: with modern c-ares, use its default timeout.
build: delete unused `HAVE_ GSSHEIMDAL,GSSMIT,HEIMDAL `.
build: delete/replace clang warning pragmas.
build: enable missing OpenSSF-recommended warnings, with .
build: `-Wconversion`/`-Wsign-conversion` warnings.
build: Windows ADDRESS_FAMILY detection.
build: more `-Wformat` .
build: remove redundant `CURL_PULL_*` settings.
cf-h1-proxy: no CURLOPT_USERAGENT in CONNECT with hyper.
cf-socket: show errno in tcpkeepalive error messages.
CI/distcheck: run full tests.
cmake: add option to disable building docs.
cmake: generation for system name iOS.
cmake: typo.
cmake: freshen up docs/INSTALL.cmake.
cmake: prefill/cache `HAVE_STRUCT_SOCKADDR_STORAGE`.
cmake: rework options to enable curl and libcurl docs.
cmake: when USE_MANUAL=YES, build the curl.1 man page.
cmdline-opts/write-out.d: remove spurious double quotes.
cmdline-opts: update availability for the *-ca-native options.
cmdline/gen: the sorting of the man page options.
configure: add libngtcp2_crypto_boringssl detection.
configure: no default int compile error in ipv6 detection.
configure: when enabling QUIC, check that TLS supports QUIC.
connect: remove margin from eyeballer alloc.
content_encoding: change return code to typedef apos;ed enum.
cookie.d: document use of empty string to enable cookie engine.
cookie: avoid fopen with empty file name.
curl.h: CURLOPT_DNS_SERVERS is only availab
7.65.027 May 2019 19:31
major bugfix:
7.63.005 Feb 2019 16:58
major bugfix:
7.40.009 Jan 2015 06:45
major feature:
http_digest: Added support for Windows SSPI based authentication.
version info: Added Kerberos V5 to the supported features.
Makefile: Added VC targets for WinIDN.
config-win32: Introduce build targets for VS2012+.
SSL: Add PEM format support for public key pinning.
smtp: Added support for the conversion of Unix newlines during mail send.
smb: Added initial support for the SMB/CIFS protocol.
Added support for HTTP over unix domain sockets, via
CURLOPT_UNIX_SOCKET_PATH and --unix-socket.
SASL: Added support for GSS-API based Kerberos V5 authentication .
7.38.011 Sep 2014 16:44
minor feature:
Various bug and two security fixes for cookie leaks were applied.
CURLE_HTTP2 is a new error code.
CURLAUTH_NEGOTIATE is a new auth define.
CURL_VERSION_GSSAPI is a new capability bit.
No longer use fbopenssl for anything.
schannel: use CryptGenRandom for random numbers.
axtls: define curlssl_random using axTLS's PRNG.
cyassl: use RNG_GenerateBlock to generate a good random number.
findprotocol: show unsupported protocol within quotes.
version: detect and show LibreSSL.
version: detect and show BoringSSL.
imap/pop3/smtp: Kerberos (SASL GSSAPI) authentication via Windows SSPI.
http2: requires nghttp2 0.6.0 or later.
7.37.121 Jul 2014 21:13
minor feature:
bits.close: introduce connection close tracking. darwinssl: Add support for --cacert. polarssl: add ALPN support. docs: Added new option man pages.