| _ _ ____ _ |
| ___| | | | _ \| | |
| / __| | | | |_) | | |
| | (__| |_| | _ <| |___ |
| \___|\___/|_| \_\_____| |
| |
| FEATURES |
| |
| curl tool |
| - config file support |
| - multiple URLs in a single command line |
| - range "globbing" support: [0-13], {one,two,three} |
| - multiple file upload on a single command line |
| - custom maximum transfer rate |
| - redirectable stderr |
| - metalink support (*13) |
| |
| libcurl |
| - full URL syntax with no length limit |
| - custom maximum download time |
| - custom least download speed acceptable |
| - custom output result after completion |
| - guesses protocol from host name unless specified |
| - uses .netrc |
| - progress bar with time statistics while downloading |
| - "standard" proxy environment variables support |
| - compiles on win32 (reported builds on 40+ operating systems) |
| - selectable network interface for outgoing traffic |
| - IPv6 support on unix and Windows |
| - persistent connections |
| - socks 4 + 5 support, with or without local name resolving |
| - supports user name and password in proxy environment variables |
| - operations through proxy "tunnel" (using CONNECT) |
| - support for large files (>2GB and >4GB) during upload and download |
| - replaceable memory functions (malloc, free, realloc, etc) |
| - asynchronous name resolving (*6) |
| - both a push and a pull style interface |
| - international domain names (*11) |
| |
| HTTP |
| - HTTP/1.1 compliant (optionally uses 1.0) |
| - GET |
| - PUT |
| - HEAD |
| - POST |
| - Pipelining |
| - multipart formpost (RFC1867-style) |
| - authentication: Basic, Digest, NTLM (*9) and Negotiate (SPNEGO) (*3) |
| to server and proxy |
| - resume (both GET and PUT) |
| - follow redirects |
| - maximum amount of redirects to follow |
| - custom HTTP request |
| - cookie get/send fully parsed |
| - reads/writes the netscape cookie file format |
| - custom headers (replace/remove internally generated headers) |
| - custom user-agent string |
| - custom referrer string |
| - range |
| - proxy authentication |
| - time conditions |
| - via http-proxy |
| - retrieve file modification date |
| - Content-Encoding support for deflate and gzip |
| - "Transfer-Encoding: chunked" support in uploads |
| - data compression (*12) |
| - HTTP/2 (*5) |
| |
| HTTPS (*1) |
| - (all the HTTP features) |
| - using client certificates |
| - verify server certificate |
| - via http-proxy |
| - select desired encryption |
| - force usage of a specific SSL version (SSLv2 (*7), SSLv3 (*10) or TLSv1) |
| |
| FTP |
| - download |
| - authentication |
| - Kerberos 5 (*14) |
| - active/passive using PORT, EPRT, PASV or EPSV |
| - single file size information (compare to HTTP HEAD) |
| - 'type=' URL support |
| - dir listing |
| - dir listing names-only |
| - upload |
| - upload append |
| - upload via http-proxy as HTTP PUT |
| - download resume |
| - upload resume |
| - custom ftp commands (before and/or after the transfer) |
| - simple "range" support |
| - via http-proxy |
| - all operations can be tunneled through a http-proxy |
| - customizable to retrieve file modification date |
| - no dir depth limit |
| |
| FTPS (*1) |
| - implicit ftps:// support that use SSL on both connections |
| - explicit "AUTH TLS" and "AUTH SSL" usage to "upgrade" plain ftp:// |
| connection to use SSL for both or one of the connections |
| |
| SCP (*8) |
| - both password and public key auth |
| |
| SFTP (*8) |
| - both password and public key auth |
| - with custom commands sent before/after the transfer |
| |
| TFTP |
| - download |
| - upload |
| |
| TELNET |
| - connection negotiation |
| - custom telnet options |
| - stdin/stdout I/O |
| |
| LDAP (*2) |
| - full LDAP URL support |
| |
| DICT |
| - extended DICT URL support |
| |
| FILE |
| - URL support |
| - upload |
| - resume |
| |
| SMB |
| - SMBv1 over TCP and SSL |
| - download |
| - upload |
| - authentication with NTLMv1 |
| |
| SMTP |
| - authentication: Plain, Login, CRAM-MD5, Digest-MD5, NTLM (*9), Kerberos 5 |
| (*4) and External. |
| - send e-mails |
| - mail from support |
| - mail size support |
| - mail auth support for trusted server-to-server relaying |
| - multiple recipients |
| - via http-proxy |
| |
| SMTPS (*1) |
| - implicit smtps:// support |
| - explicit "STARTTLS" usage to "upgrade" plain smtp:// connections to use SSL |
| - via http-proxy |
| |
| POP3 |
| - authentication: Clear Text, APOP and SASL |
| - SASL based authentication: Plain, Login, CRAM-MD5, Digest-MD5, NTLM (*9), |
| Kerberos 5 (*4) and External. |
| - list e-mails |
| - retrieve e-mails |
| - enhanced command support for: CAPA, DELE, TOP, STAT, UIDL and NOOP via |
| custom requests |
| - via http-proxy |
| |
| POP3S (*1) |
| - implicit pop3s:// support |
| - explicit "STLS" usage to "upgrade" plain pop3:// connections to use SSL |
| - via http-proxy |
| |
| IMAP |
| - authentication: Clear Text and SASL |
| - SASL based authentication: Plain, Login, CRAM-MD5, Digest-MD5, NTLM (*9), |
| Kerberos 5 (*4) and External. |
| - list the folders of a mailbox |
| - select a mailbox with support for verifying the UIDVALIDITY |
| - fetch e-mails with support for specifying the UID and SECTION |
| - upload e-mails via the append command |
| - enhanced command support for: EXAMINE, CREATE, DELETE, RENAME, STATUS, |
| STORE, COPY and UID via custom requests |
| - via http-proxy |
| |
| IMAPS (*1) |
| - implicit imaps:// support |
| - explicit "STARTTLS" usage to "upgrade" plain imap:// connections to use SSL |
| - via http-proxy |
| |
| MQTT |
| - Subscribe to and publish topics using url scheme mqtt://broker/topic |
| |
| FOOTNOTES |
| ========= |
| |
| *1 = requires a TLS library |
| *2 = requires OpenLDAP or WinLDAP |
| *3 = requires a GSS-API implementation (such as Heimdal or MIT Kerberos) or |
| SSPI (native Windows) |
| *4 = requires a GSS-API implementation, however, only Windows SSPI is |
| currently supported |
| *5 = requires nghttp2 and possibly a recent TLS library |
| *6 = requires c-ares |
| *7 = requires OpenSSL, NSS, GSKit, Schannel or Secure Transport; GnuTLS, for |
| example, only supports SSLv3 and TLSv1 |
| *8 = requires libssh2 |
| *9 = requires OpenSSL, GnuTLS, mbedTLS, NSS, yassl, Secure Transport or SSPI |
| (native Windows) |
| *10 = requires an SSL library that supports SSLv3 |
| *11 = requires libidn or Windows |
| *12 = requires libz |
| *13 = requires libmetalink, and either an Apple or Microsoft operating |
| system, or OpenSSL, or GnuTLS, or NSS |
| *14 = requires a GSS-API implementation (such as Heimdal or MIT Kerberos) |