1 _ _ ____ _ 2 ___| | | | _ \| | 3 / __| | | | |_) | | 4 | (__| |_| | _ <| |___ 5 \___|\___/|_| \_\_____| 6 7 FEATURES 8 9 curl tool 10 - config file support 11 - multiple URLs in a single command line 12 - range "globbing" support: [0-13], {one,two,three} 13 - multiple file upload on a single command line 14 - custom maximum transfer rate 15 - redirectable stderr 16 - metalink support (*13) 17 18 libcurl 19 - full URL syntax with no length limit 20 - custom maximum download time 21 - custom least download speed acceptable 22 - custom output result after completion 23 - guesses protocol from host name unless specified 24 - uses .netrc 25 - progress bar with time statistics while downloading 26 - "standard" proxy environment variables support 27 - compiles on win32 (reported builds on 40+ operating systems) 28 - selectable network interface for outgoing traffic 29 - IPv6 support on unix and Windows 30 - persistent connections 31 - socks 4 + 5 support, with or without local name resolving 32 - supports user name and password in proxy environment variables 33 - operations through proxy "tunnel" (using CONNECT) 34 - support for large files (>2GB and >4GB) during upload and download 35 - replaceable memory functions (malloc, free, realloc, etc) 36 - asynchronous name resolving (*6) 37 - both a push and a pull style interface 38 - international domain names (*11) 39 40 HTTP 41 - HTTP/1.1 compliant (optionally uses 1.0) 42 - GET 43 - PUT 44 - HEAD 45 - POST 46 - Pipelining 47 - multipart formpost (RFC1867-style) 48 - authentication: Basic, Digest, NTLM (*9) and Negotiate (SPNEGO) (*3) 49 to server and proxy 50 - resume (both GET and PUT) 51 - follow redirects 52 - maximum amount of redirects to follow 53 - custom HTTP request 54 - cookie get/send fully parsed 55 - reads/writes the netscape cookie file format 56 - custom headers (replace/remove internally generated headers) 57 - custom user-agent string 58 - custom referrer string 59 - range 60 - proxy authentication 61 - time conditions 62 - via http-proxy 63 - retrieve file modification date 64 - Content-Encoding support for deflate and gzip 65 - "Transfer-Encoding: chunked" support in uploads 66 - data compression (*12) 67 - HTTP/2 (*5) 68 69 HTTPS (*1) 70 - (all the HTTP features) 71 - using client certificates 72 - verify server certificate 73 - via http-proxy 74 - select desired encryption 75 - force usage of a specific SSL version (SSLv2 (*7), SSLv3 (*10) or TLSv1) 76 77 FTP 78 - download 79 - authentication 80 - Kerberos 5 (*14) 81 - active/passive using PORT, EPRT, PASV or EPSV 82 - single file size information (compare to HTTP HEAD) 83 - 'type=' URL support 84 - dir listing 85 - dir listing names-only 86 - upload 87 - upload append 88 - upload via http-proxy as HTTP PUT 89 - download resume 90 - upload resume 91 - custom ftp commands (before and/or after the transfer) 92 - simple "range" support 93 - via http-proxy 94 - all operations can be tunneled through a http-proxy 95 - customizable to retrieve file modification date 96 - no dir depth limit 97 98 FTPS (*1) 99 - implicit ftps:// support that use SSL on both connections 100 - explicit "AUTH TLS" and "AUTH SSL" usage to "upgrade" plain ftp:// 101 connection to use SSL for both or one of the connections 102 103 SCP (*8) 104 - both password and public key auth 105 106 SFTP (*8) 107 - both password and public key auth 108 - with custom commands sent before/after the transfer 109 110 TFTP 111 - download 112 - upload 113 114 TELNET 115 - connection negotiation 116 - custom telnet options 117 - stdin/stdout I/O 118 119 LDAP (*2) 120 - full LDAP URL support 121 122 DICT 123 - extended DICT URL support 124 125 FILE 126 - URL support 127 - upload 128 - resume 129 130 SMB 131 - SMBv1 over TCP and SSL 132 - download 133 - upload 134 - authentication with NTLMv1 135 136 SMTP 137 - authentication: Plain, Login, CRAM-MD5, Digest-MD5, NTLM (*9), Kerberos 5 138 (*4) and External. 139 - send e-mails 140 - mail from support 141 - mail size support 142 - mail auth support for trusted server-to-server relaying 143 - multiple recipients 144 - via http-proxy 145 146 SMTPS (*1) 147 - implicit smtps:// support 148 - explicit "STARTTLS" usage to "upgrade" plain smtp:// connections to use SSL 149 - via http-proxy 150 151 POP3 152 - authentication: Clear Text, APOP and SASL 153 - SASL based authentication: Plain, Login, CRAM-MD5, Digest-MD5, NTLM (*9), 154 Kerberos 5 (*4) and External. 155 - list e-mails 156 - retrieve e-mails 157 - enhanced command support for: CAPA, DELE, TOP, STAT, UIDL and NOOP via 158 custom requests 159 - via http-proxy 160 161 POP3S (*1) 162 - implicit pop3s:// support 163 - explicit "STLS" usage to "upgrade" plain pop3:// connections to use SSL 164 - via http-proxy 165 166 IMAP 167 - authentication: Clear Text and SASL 168 - SASL based authentication: Plain, Login, CRAM-MD5, Digest-MD5, NTLM (*9), 169 Kerberos 5 (*4) and External. 170 - list the folders of a mailbox 171 - select a mailbox with support for verifying the UIDVALIDITY 172 - fetch e-mails with support for specifying the UID and SECTION 173 - upload e-mails via the append command 174 - enhanced command support for: EXAMINE, CREATE, DELETE, RENAME, STATUS, 175 STORE, COPY and UID via custom requests 176 - via http-proxy 177 178 IMAPS (*1) 179 - implicit imaps:// support 180 - explicit "STARTTLS" usage to "upgrade" plain imap:// connections to use SSL 181 - via http-proxy 182 183 FOOTNOTES 184 ========= 185 186 *1 = requires OpenSSL, GnuTLS, NSS, yassl, axTLS, PolarSSL, WinSSL (native 187 Windows), Secure Transport (native iOS/OS X) or GSKit (native IBM i) 188 *2 = requires OpenLDAP 189 *3 = requires a GSS-API implementation (such as Heimdal or MIT Kerberos) or 190 SSPI (native Windows) 191 *4 = requires a GSS-API implementation, however, only Windows SSPI is 192 currently supported 193 *5 = requires nghttp2 and possibly a recent TLS library 194 *6 = requires c-ares 195 *7 = requires OpenSSL, NSS, GSKit, WinSSL or Secure Transport; GnuTLS, for 196 example, only supports SSLv3 and TLSv1 197 *8 = requires libssh2 198 *9 = requires OpenSSL, GnuTLS, NSS, yassl, Secure Transport or SSPI (native 199 Windows) 200 *10 = requires any of the SSL libraries in (*1) above other than axTLS, which 201 does not support SSLv3 202 *11 = requires libidn or Windows 203 *12 = requires libz 204 *13 = requires libmetalink, and either an Apple or Microsoft operating 205 system, or OpenSSL, or GnuTLS, or NSS 206 *14 = requires a GSS-API implementation (such as Heimdal or MIT Kerberos) 207