Reproducible curl binaries for Linux, macOS and Windows
- Download our
.tar.xz
or.zip
packages,
PGP signed with:9948 0C09 BC89 B68A 0764 3F30 8C8F 5B14 19BD CAB8
- Standalone
curl
tool andlibcurl
DLL. Static libraries included. - Required: Windows Vista with Universal CRT (x64, ARM64 or x86), macOS 10.9 Mavericks (Intel or ARM), any Linux (amd64, arm64 or experimental RISC-V) with MUSL builds.
- HTTP/3, HTTP/2 support, and more.
- ARM64 Windows builds are Control Flow Guard enabled. Intel Linux/Windows have CET enabled. [EXPERIMENTAL]
- Transparent builds, using open source code, run in public, with auditable logs.
- LLVM/Clang build environment with
mingw-w64
via Debian, Homebrew, MSYS2.llvm-mingw
for ARM64. - Windows cross-built and published via
AppVeyor CI. Linux built via GHA.
Using reproducible OS image
debian:testing-slim
via Docker. macOS built on native OS. - Linux and macOS builds are experimental and not official curl builds.
- We verify components using SHA-256, and PGP where provided.
- We build reproducible binaries, producing the same hash given the same input sources and C compiler.
- Patching policy: No local patches. We may apply patches if already merged upstream or — for showstoppers — had them submitted with fair confidence of getting merged.
- You can look up our package hashes in lines starting with
SHA
in the build log. - Packages built across host platforms do not have identical hashes due to
slightly different build options and toolchain builds/versions. Except
llvm-mingw
builds, which are reproducible across platforms. ARM64 and BoringSSL builds are such by default. - We code-sign with a self-signed certificate on Windows, and avoid trusted timestamps for reproducibility.
Features
Uses LibreSSL TLS backend.
Windows with runtime-selectable option Schannel:
Protocols: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns ldap ldaps mqtt pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp ws wss
Features: alt-svc AsynchDNS brotli HSTS HTTP2 HTTP3 HTTPS-proxy IDN IPv6 Kerberos Largefile libz MultiSSL NTLM SPNEGO SSL SSPI threadsafe UnixSockets zstd
macOS with runtime-selectable option SecureTransport:
Protocols: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns ldap ldaps mqtt pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp ws wss
Features: alt-svc AsynchDNS brotli HSTS HTTP2 HTTP3 HTTPS-proxy IPv6 Largefile libz MultiSSL NTLM SSL threadsafe UnixSockets zstd
Linux:
Protocols: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns mqtt pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp ws wss
Features: alt-svc AsynchDNS brotli HSTS HTTP2 HTTP3 HTTPS-proxy IPv6 Largefile libz NTLM SSL threadsafe UnixSockets zstd
Alternate configurations:
"big":
Protocols: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns ldap ldaps mqtt pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp ws wss
Features: alt-svc AsynchDNS brotli gsasl HSTS HTTP2 HTTP3 HTTPS-proxy IDN IPv6 Kerberos Largefile libz MultiSSL NTLM PSL SPNEGO SSL SSPI threadsafe UnixSockets zstd
"boringssl":
Protocols: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns ldap ldaps mqtt pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp ws wss
Features: alt-svc AsynchDNS brotli HSTS HTTP2 HTTP3 HTTPS-proxy IDN IPv6 Kerberos Largefile libz MultiSSL NTLM SPNEGO SSL SSPI threadsafe UnixSockets zstd
"noh3", HTTP/2:
Protocols: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns ldap ldaps mqtt pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp ws wss
Features: alt-svc AsynchDNS brotli HSTS HTTP2 HTTPS-proxy IDN IPv6 Kerberos Largefile libz MultiSSL NTLM SPNEGO SSL SSPI threadsafe UnixSockets zstd
"mini", without brotli and zstd, with OS TLS backend (Schannel, SecureTransport) if available:
Protocols: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns ldap ldaps mqtt pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp ws wss
Features: alt-svc AsynchDNS HSTS HTTP2 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM SPNEGO SSL SSPI threadsafe UnixSockets
"micro", without libssh2:
Protocols: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns ldap ldaps mqtt pop3 pop3s rtsp smb smbs smtp smtps telnet tftp ws wss
Features: alt-svc AsynchDNS HSTS HTTP2 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM SPNEGO SSL SSPI threadsafe UnixSockets
"nano", HTTP/1.1:
Protocols: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns ldap ldaps mqtt pop3 pop3s rtsp smb smbs smtp smtps telnet tftp ws wss
Features: AsynchDNS HSTS HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM SPNEGO SSL SSPI threadsafe UnixSockets
"pico", HTTP/1.1-only:
Protocols: http https ipfs ipns
Features: AsynchDNS HSTS HTTPS-proxy IPv6 Largefile libz SSL SSPI threadsafe
Downloads
- Latest version for Windows:
https://curl.se/windows/ - Specific versions for Windows, back to 8.2.0:
https://curl.se/windows/dl-<curl-version>_<build-1-to-N>/
Example:
https://curl.se/windows/dl-8.2.0_1/
Build logs
https://ci.appveyor.com/project/curlorg/curl-for-win/history
Unstable/development daily builds
https://github.com/curl/curl-for-win/actions/workflows/daily.yml
Guarantees and Liability
See LICENSE.
Information in this document is subject to change without notice and does not represent or imply any future commitment by the participants of the project.
This document © Viktor Szakats, CC BY-SA 4.0