Command line tool and library for transferring data with URLs!

cURL

cURL 8.10.0

  -  6.2 MB  -  Freeware
  • Latest Version

    cURL 8.11.1

  • Operating System

    Windows XP / Vista / Windows 7 / Windows 8 / Windows 10 / Windows 11

  • User Rating

    Click to vote
  • Author / Product

    Daniel Stenberg / External Link

  • Filename

    curl-8.10.0.zip

Sometimes latest versions of the software can cause issues when installed on older devices or devices running an older version of the operating system.

Software makers usually fix these issues but it can take them some time. What you can do in the meantime is to download and install an older version of cURL 8.10.0.


For those interested in downloading the most recent release of cURL or reading our review, simply click here.


All old versions distributed on our website are completely virus-free and available for download at no cost.


We would love to hear from you

If you have any questions or ideas that you want to share with us - head over to our Contact page and let us know. We value your feedback!

What's new in this version:

Changed:
- autotools: add `--enable-windows-unicode` option
- curl: --help [option] displays documentation for given cmdline option
- curl: add --skip-existing
- curl: for -O, use "default" as filename when the URL has none
- curl: make --rate accept "number of units"
- 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

Fixed:
- asyn-thread: stop using GetAddrInfoExW on Windows
- autotools: fix MS-DOS builds
- autotools: fix typo in tests/data target
- aws_sigv4: fix canon order for headers with same prefix
- bearssl: fix 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 <=7.0.0
- build: silence C4232 MSVC warnings in vcpkg ngtcp2 builds
- build: use -Wno-format-overflow
- buildconf.bat: fix tool_hugehelp.c generation
- cf-socket: fix pollset for listening
- cf-socket: prevent KEEPALIVE_FACTOR being set to 1000 for Windows
- cfilters: send flush
- CHANGES: rename to CHANGES.md, no longer generated
- CI: enable parallel testing in CI builds
- ci: Update actions/upload-artifact digest to 89ef406
- cmake: `Libs.private` improvements
- cmake: add `CURL_USE_PKGCONFIG` option
- cmake: add Linux CI job, fix pytest with cmake
- cmake: add math library when using wolfssl and ngtcp2
- cmake: add missing `pkg-config` hints to Find modules
- cmake: add missing version detection to Find modules
- cmake: add rustls
- cmake: add support for versioned symbols option
- cmake: add wolfSSH support
- cmake: allow `pkg-config` in more envs
- cmake: cleanup header paths
- cmake: default `CURL_DISABLE_LDAPS` to the value of `CURL_DISABLE_LDAP`
- cmake: delete MSVC warning suppression for tests/server
- cmake: detect `nghttp2` via `pkg-config`, enable by default
- cmake: detect and show VCPKG in platform flags
- cmake: distcheck for files in CMake subdir
- cmake: drop custom `CMakeOutput.log`/`CMakeError.log` logs
- cmake: drop libssh CONFIG-style detection
- cmake: drop no-op `tests/data/CMakeLists.txt`
- cmake: drop reference to undefined variable
- cmake: drop unused `HAVE_IDNA_STRERROR`
- cmake: drop unused internal variable
- cmake: exclude tests/http/clients builds by default
- cmake: fix `GSS_VERSION` for Heimdal found via pkg-config
- cmake: fix `pkg-config`-based detection in `FindGSS.cmake`
- cmake: fix and tidy up c-ares builds, enable in more CI jobs
- cmake: fix find rustls
- cmake: fixup linking libgsasl when detected via CMake-native
- cmake: honor custom `CMAKE_UNITY_BUILD_BATCH_SIZE`
- cmake: limit `pkg-config` to UNIX and MSVC+vcpkg by default
- cmake: limit libidn2 `pkg-config` detection to `UNIX`
- cmake: migrate dependency detections to Find modules
- cmake: more small tidy-ups and fixes
- cmake: rename wolfSSL and zstd config variables to uppercase
- cmake: respect cflags/libdirs of native pkg-config detections
- cmake: show CMake platform/compiler flags
- cmake: show warning if libpsl is not found
- cmake: sync code between test/example targets
- cmake: sync up formatting in Find modules
- cmake: TLS 1.3 warning only for bearssl and sectranp
- cmake: update `curl-config.cmake.in` template var list
- cmake: update list of "advanced" variables
- cmake: use numeric comparison for `HAVE_WIN32_WINNT`
- cmdline-opts: language fix for expect100-timeout.md and max-time.md
- configure: delete unused `CURL_DEFINE_UNQUOTED` function
- configure: delete unused `HAVE_OPENSSL3` macro
- configure: delete unused `m4/xc-translit.m4`
- configure: detect AppleIDN
- configure: fail if PSL is not disabled but not found
- configure: fix WinIDN builds targeting old Windows
- configure: remove USE_EXPLICIT_LIB_DEPS
- configure: replace nonportable grep -o with awk
- connect: always prefer ipv6 in IP eyeballing
- connect: limit update IP info
- cookie.md: try to articulate the two different uses this option has
- curl: allow 500MB data URL encode strings
- curl: find curlrc in XDG_CONFIG_HOME without leading dot
- curl: fix --proxy-pinnedpubkey
- curl: fix the -w urle.* variables
- curl: make the progress bar detect terminal width changes
- curl: warn on unsupported SSL options
- Curl_rand_bytes to control env override
- curl_sha512_256: fix symbol collisions with nettle library
- CURLMOPT_SOCKETFUNCTION.md: expand on the easy argument
- CURLOPT_XFERINFOFUNCTION: clarify the callback return codes
- dist: add missing `docs/examples/CMakeLists.txt`
- dist: add missing `FindNettle.cmake`
- dist: add missing `lib/optiontable.pl`
- dist: add missing `test_*.py` scripts
- dist: drop buildconf
- dist: fix reproducible build from release tarball
- dmaketgz: only run 'make distclean' if Makefile exists
- docs/SSLCERTS: rewrite
- docs: add description of effect of --location-trusted on cookie
- docs: document the (weak) random value situation in rustls builds
- docs: fix some examples in man pages
- docs: improve cipher options documentation
- docs: mention "@-" in more places
- docs: remove ALTSVC.md, HSTS.md, HTTP2.md and PARALLEL-TRANSFERS.md
- docs: update CIPHERS.md
- doh-url.md: point out DOH server IP pinning
- doh: remove redundant checks
- easy: fix curl_easy_upkeep for shared connection caches
- escape: allow curl_easy_escape to generate 3*input length output
- FEATURES.md: fix typo
- ftp: always offer line end conversions
- ftp: flush pingpong before response
- getinfo: return zero for unsupported options (when disabled)
- GHA/windows: enable MulitSSL in an MSVC job
- GHA: scan git repository and detect unvetted binary files
- gnutls/wolfssl: improve error message when certificate fails
- gnutls: send all data
- gtls: fix OCSP stapling management
- haproxy: send though next filter
- hash: provide asserts to verify API use
- http/2: simplify eos/blocked handling
- http2+h3 filters: fix ctx init
- http2: fix GOAWAY message sent to server
- http2: improve rate limiting of downloads
- http2: improved upload eos handling
- http3.md: mention how the fallback can be h1 or h2
- hyper: call Curl_req_set_upload_done()
- idn: more strictly check AppleIDN errors
- idn: support non-UTF-8 input under AppleIDN
- INSTALL.md: MultiSSL and QUIC are mutually exclusive
- KNOWN_BUGS: "special characers" in URL works with aws-sigv4
- krb5: add Linux/macOS CI tests, fix cmake GSS detection
- krb5: fix `-Wcast-align`
- lib: add eos flag to send methods
- lib: avoid macro collisions between wolfSSL and GnuTLS headers
- lib: convert some debugf()s into traces
- lib: delete stray undefs for `vsnprintf`, `vsprintf`
- lib: fix AIX build issues
- lib: fix building with wolfSSL without DES support
- lib: make SSPI global symbols use Curl_ prefix
- lib: prefer `CURL_SHA256_DIGEST_LENGTH` over the unprefixed name
- lib: remove the final strncpy() calls
- lib: remove use of RANDOM_FILE
- libcurl.def: move from / into lib
- libcurl.pc: add `Cflags.private`
- libcurl.pc: add reference to `libgsasl`
- libcurl/docs: expand on redirect following and secrets to other hosts
- llist: remove direct struct accesses, use only functions
- Makefile.dist: fix `ca-firefox` target
- Makefile.mk: fixup enabling libidn2
- Makefile: remove 'scripts' duplicate from DIST_SUBDIRS
- maketgz: accept option to include latest commit hash
- maketgz: fix RELEASE-TOOLS.md for daily tarballs
- maketgz: move from / into scripts
- managen: fix superfluous leading blank line in quoted sections
- managen: in man output, remove the leading space from examples
- managen: wordwrap long example lines in ASCII output
- manpage: ensure a maximum width for the text version
- max-filesize.md: mention zero disables the limit
- mbedtls: add more informative logging
- mbedtls: fix setting tls version
- mbedtls: no longer use MBEDTLS_SSL_VERIFY_OPTIONAL
- mime: avoid inifite loop in client reader
- mk-ca-bundle.pl: include a link to the caextract webpage
- multi: make the "general" list of easy handles a Curl_llist
- multi: on socket callback error, remove socket hash entry nonetheless
- ngtcp2/osslq: remove NULL pointer dereferences
- ngtcp2: use NGHTTP3 prefix instead of NGTCP2 for errors in h3 callbacks
- openssl quic: fix memory leak
- openssl: certinfo errors now fail correctly
- openssl: fix the data race when sharing an SSL session between threads
- openssl: improve shutdown handling
- pingpong: drain the input buffer when reading responses
- POP3: fix multi-line responses
- pop3: use the protocol handler ->write_resp
- printf: fix mingw-w64 format checks
- progress: ratelimit/progress tweaks
- pytests: add tests for HEAD requests in all HTTP versions
- rand: only provide weak random when needed
- runtests: if DISABLED cannot be read, error out
- runtests: log ignored but passed tests
- runtests: remove "has_textaware"
- rustls: fix setting tls version
- rustls: make all tests pass
- schannel: avoid malloc for CAinfo_blob_digest
- scorecard: tweak request measurements
- sectransp: fix setting tls version
- SECURITY: mention OpenSSF best practices gold badge
- setopt: allow CURLOPT_INTERFACE to be set to NULL
- setopt: let CURLOPT_ECH set to NULL reset to default
- setopt: make CURLOPT_TFTP_BLKSIZE accept bad values
- sha256: fix symbol collision between nettle (GnuTLS) and OpenSSL
- share: don't reinitialize conncache
- sigpipe: init the struct so that first apply ignores
- smb: convert superflous assign into assert
- smtp: add tracing feature
- splay: use access functions, add asserts, use Curl_timediff
- spnego_gssapi: implement TLS channel bindings for openssl
- src: delete `curlx_m*printf()` aliases
- src: fix potential macro confusion in cmake unity builds
- src: namespace symbols clashing with lib
- src: replace copy of printf mappings with an include
- ssh: deduplicate SSH backend includes (and fix libssh cmake unity build)
- system_win32: fix typo
- test httpd: tweak cipher list
- test1521: verify setting options to NULL better
- test1707: output diff more for debugging differences in CI outputs
- test556: improve robustness
- test579: improve robustness
- test587: improve robustness
- test649: improve robustness
- test677: improve robustness
- tests/runner: only allow [!A-Za-z0-9_-] in %if feature names
- tests: constrain http pytest to tests/http directory
- tests: don't mangle output if hostname or type unknown
- tests: ignore QUIT from FTP protocol comparisons
- tests: provide docs as curldown, not nroff
- tidy-up: misc build, tests, `lib/macos.c`
- tidy-up: OS names
- tool_operhlp: fix "potentially uninitialized local variable 'pc' used"
- tool_paramhlp: bump maximum post data size in memory to 16GB
- transfer: Curl_sendrecv() and event related improvements
- transfer: remove comments, add asserts
- transfer: skip EOS read when download done
- url: dns_entry related improvements
- url: fix connection reuse for HTTP/2 upgrades
- urlapi: verify URL *decoded* hostname when set
- urldata: introduce `data->mid`, a unique identifier inside a multi
- urldata: remove 'scratch' from the UrlState struct
- urldata: remove crlf_conversions counter
- urldata: remove proxy_connect_closed bit
- verify-release: shell script that verifies a release tarball
- version: fix shadowing a `libssh.h` symbol
- vtls: add SSLSUPP_CIPHER_LIST
- vtls: fix MSVC 'cast truncates constant value' warning
- vtls: fix static function name collisions between TLS backends
- vtls: init ssl peer only once
- websocket: introduce blocking sends
- wolfssl: avoid taking cached x509 store ref if sslctx already using it
- wolfssl: fix CURLOPT_SSLVERSION
- wolfssl: fix setting tls version
- wolfssl: improve shutdown handling
- ws: flags to opcodes should ignore CURLWS_CONT flag
- x509asn1: raise size limit for x509 certification information