Giter VIP home page Giter VIP logo

curl-for-win's Introduction

License Build status

Reproducible curl binaries for Windows

  • You can download the packages in .zip or .tar.xz formats,
    PGP signed with: 002C 1689 65BA C220 2118 408B 4ED8 5DF9 BB3D 0DE8
  • Standalone curl.exe and libcurl.dll. Static libraries included.
  • Vista and Universal CRT required.
  • HTTP/3 and HTTP/2 support. Detailed feature list below.
  • 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.
  • Cross-built and published from Linux via AppVeyor CI. Using reproducible OS image debian:testing-slim via Docker.
  • Built with hardening options enabled.
  • Binaries use SEH, except x86, which uses DWARF.
  • We verify components using SHA-256 hashes and PGP signatures 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.
  • We plan to switch the default TLS backend to BoringSSL. This fixes a long-standing vulnerability. It also makes binaries 30% smaller. Downsides are no API/ABI guaranties, pthread dependence and no TLS-SRP support.
  • 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 like that by default.
  • We code sign with a self-signed certificate, and avoid trusted timestamps for reproducibility.

Features

Default build with OpenSSL (QUIC fork), and Schannel runtime-selectable option:

Protocols: dict file ftp ftps gopher gophers http https imap imaps 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     SPNEGO SSL SSPI threadsafe TLS-SRP UnixSockets zstd
Libs: -lcurl -lz -lcrypt32 -lbcrypt -lwldap32 -lnghttp2 -lssh2 -lgsasl -lssl -lcrypto -lbrotlidec -lbrotlicommon -lzstd -lnghttp3 -lngtcp2
Alternate configurations with different footprints:

"big":
Protocols: dict file ftp ftps gopher gophers http https imap imaps 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
Libs: -lcurl -lz -lcrypt32 -lbcrypt -lwldap32 -lnghttp2 -lssh2 -lgsasl -lssl -lcrypto -lbrotlidec -lbrotlicommon -lzstd -lnghttp3 -lngtcp2 -lidn2 -lpsl -liconv -lunistring

"boringssl":
Protocols: dict file ftp ftps gopher gophers http https imap imaps 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     SPNEGO SSL SSPI threadsafe         UnixSockets zstd
Libs: -lcurl -lz -lcrypt32 -lbcrypt -lwldap32 -lnghttp2 -lssh2 -lgsasl -lssl -lcrypto -lbrotlidec -lbrotlicommon -lzstd -lnghttp3 -lngtcp2

"noh3", HTTP/2:
Protocols: dict file ftp ftps gopher gophers http https imap imaps ldap ldaps mqtt pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp ws wss
Features: alt-svc AsynchDNS brotli gsasl HSTS HTTP2       HTTPS-proxy IDN IPv6 Kerberos Largefile libz MultiSSL NTLM     SPNEGO SSL SSPI threadsafe TLS-SRP UnixSockets zstd
Libs: -lcurl -lz -lcrypt32 -lbcrypt -lwldap32 -lnghttp2 -lssh2 -lgsasl -lssl -lcrypto -lbrotlidec -lbrotlicommon -lzstd

"mini", Schannel, without brotli and zstd:
Protocols: dict file ftp ftps gopher gophers http https imap imaps ldap ldaps mqtt pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp ws wss
Features: alt-svc AsynchDNS        gsasl HSTS HTTP2                   IDN IPv6 Kerberos Largefile libz          NTLM     SPNEGO SSL SSPI threadsafe         UnixSockets
Libs: -lcurl -lz -lcrypt32 -lbcrypt -lwldap32 -lnghttp2 -lssh2 -lgsasl

"micro", without libssh2 and gsasl:
Protocols: dict file ftp ftps gopher gophers http https imap imaps ldap ldaps mqtt pop3 pop3s rtsp          smb smbs smtp smtps telnet tftp ws wss
Features: alt-svc AsynchDNS              HSTS HTTP2                   IDN IPv6 Kerberos Largefile libz          NTLM     SPNEGO SSL SSPI threadsafe         UnixSockets
Libs: -lcurl -lz -lcrypt32 -lbcrypt -lwldap32 -lnghttp2

"nano", HTTP/1.1:
Protocols: dict file ftp ftps gopher gophers http https imap imaps ldap ldaps mqtt pop3 pop3s rtsp          smb smbs smtp smtps telnet tftp ws wss
Features:         AsynchDNS              HSTS                         IDN IPv6 Kerberos Largefile libz          NTLM     SPNEGO SSL SSPI threadsafe         UnixSockets
Libs: -lcurl -lz -lcrypt32 -lbcrypt -lwldap32

"pico", HTTP/1.1-only:
Protocols:                                   http https
Features:         AsynchDNS              HSTS                             IPv6          Largefile libz                          SSL SSPI threadsafe         UnixSockets
Libs: -lcurl -lz -lcrypt32 -lbcrypt

Downloads

Build logs

https://ci.appveyor.com/project/curlorg/curl-for-win/history

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 © 2014–present Viktor Szakats
Creative Commons Attribution-ShareAlike 4.0

curl-for-win's People

Contributors

vszakats avatar

Stargazers

Lê Đức Bằng avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.