curl and libcurl 8.11.1

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.

Tags internet web ftp software-development libraries networking curl
License MITL
State initial

Recent Releases

8.11.112 Dec 2024 18:25 minor bugfix: 8.11.1 8.11.1 8.11.1 changes only . : . build: ECH to always enable HTTPS RR. build: MSVC UWP builds. build: omit certain deps from `libcurl.pc` unless found via `pkg-config`. build: use `_fseeki64()` on Windows, drop detections. cmake: do not echo most inherited `LDFLAGS` to config files. cmake: drop cmake args list from `buildinfo.txt`. cmake: include `wolfssl/options.h` first. cmake: remove legacy unused IMMEDIATE keyword. cmake: restore cmake args list in `buildinfo.txt`. cmake: set `CURL_STATICLIB` for static lib when `SHARE_LIB_OBJECT=OFF`. cmake: sync GSS config code with other deps. cmake: typo in comment. cmake: work around `ios.toolchain.cmake` breaking feature-detections. cmakelint: to check root `CMakeLists.txt`. cmdline/ech.md: formatting cleanups. configure: add MEs for disabled pkg-config references. configure: do not echo most inherited `LDFLAGS` to config files. configure: replace ` #` shell syntax. cookie: treat cookie name case sensitively. curl-rustls.m4: keep existing `CPPFLAGS`/`LDFLAGS` when detected. curl.h: mark two error codes as obsolete. curl: --continue-at is mutually exclusive with --no-clobber. curl: --continue-at is mutually exclusive with --range. curl: --continue-at is mutually exclusive with --remove-on-error. curl: --test-duphandle in debuilds runs quot;duphandled quot;. curl: do more command line parsing in sub functions. curl: rename struct var to AIX build. curl: use realtime in trace timestamps. curl_multi_socket_all.md: soften the deprecation warning. CURLOPT_PREREQFUNCTION.md: add result code on failure. digest: produce a shorter cnonce in Digest headers. DISTROS: update Alt Linux links. dmaketgz: use --no-cache when building docker image. docs: bring back ALTSVC.md and HSTS.md. docs: document default `User-Agent`. docs: suggest --ssl-reqd instead of --ftp-ssl. duphandle: also init netrc. ECH: enable support for the AWS-LC backend. hostip: don apos;t use the resolver for FQDN loca
8.10.124 Nov 2024 15:05 minor bugfix: 8.10.1 8.10.1 8.10.1 changes only . : . autotools: `--with-ca-embed` build rule. cmake: ensure `CURL_USE_OPENSSL`/`USE_OPENSSL_QUIC` are set in sync. cmake: MSH3 to appear on the feature list. connect: store connection info when really done. CURLMOPT_TIMERFUNCTION.md: emphasize that only a single timer should run. FTP: partly revert eeb7c1280742f5c8fa48a4340fc1e1a1a2c7075a. http2: when uploading data from stdin, eos forwarding. http: make max-filesize check not count ignored bodies. lib: AF_INET6 use outside of USE_IPV6. libcurl-docs: CURLINFO_LOCAL_ work for QUIC as well as TCP. multi: check that the multi handle is valid in curl_multi_assign. QUIC: on connect, keep on trying on draining server. request: correctly reset the eos_sent flag. runtests: accecpt apos;quictls apos; as OpenSSL compatible. rustls: minor logic in default cipher selection. rustls: rustls-ffi 0.14.0 update. rustls: support strong CSRNG data. setopt: remove superfluous use of ternary expressions. singleuse: drop `Curl_memrchr()` for no-HTTP builds. test537: cap the rlimit max this test runs. tests: tweak lock file handling and timers. tool_cb_wrt: use quot;curl_response quot; if no file name in URL. transfer: sendrecv() without interim poll. vtls: `Curl_ssl_conn_config_match` doc param. . . .
8.10.023 Nov 2024 22:45 major bugfix: 8.10.0 8.10.0 8.10.0 changes only . Changes: . autotools: add `--enable-windows-unicode` option. curl: --help option displays documentation for given cmdline option. curl: add --skip-existing. curl: for -O, use quot;default quot; as filename when the URL has none. curl: make --rate accept quot;number of units quot;. curl: make --show-headers the same as --include. curl: support --dump-header to direct to stderr. curl: support embedding a CA bundle and --dump-ca-embed. curl: support repeated use of the verbose option; -vv etc. curl: use libuv for parallel transfers with --test-event. getinfo: add CURLINFO_POSTTRANSFER_TIME_T. mbedtls: add CURLOPT_TLS13_CIPHERS support. rustls: add support for setting TLS version and ciphers. vtls: stop offering alpn http/1.1 for http2-prior-knowledge. wolfssl: add CURLOPT_TLS13_CIPHERS support. wolfssl: add support for ssl cert blob / ssl key blob options. . : . asyn-thread: stop using GetAddrInfoExW on Windows. autotools: MS-DOS builds. autotools: typo in tests/data target. aws_sigv4: canon order for headers with same pre. bearssl: setting tls version. bearssl: improve shutdown handling. BINDINGS: add zig binding. build: add `iphlpapi` lib for libssh on Windows. build: add `poll()` detection for cross-builds. build: add options to disable SHA-512/256 hash algo. build: check OS-native IDN first, then libidn2. build: delete unused `REQUIRE_LIB_DEPS`. build: drop unused `NROFF` reference. build: drop unused feature-detection code for Apple `poll()`. build: generate `buildinfo.txt` for test logs. build: improve compiler version detection portability. build: make `CURL_FORMAT_CURL_OFF_T U ` work with mingw-w64 lt;=7.0.0. build: silence C4232 MSVC warnings in vcpkg ngtcp2 builds. build: use -Wno-format-overflow. buildconf.bat: tool_hugehelp.c generation. cf-socket: pollset for listening. cf-socket: prevent KEEPALIVE_FACTOR being set to 1000 for Windows. cfilters: send flush. CHANGES:
8.11.022 Nov 2024 15:30 minor bugfix:
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.