lh | 9ed821d | 2023-04-07 01:36:19 -0700 | [diff] [blame^] | 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 or WinLDAP |
| 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, mbedTLS, NSS, yassl, Secure Transport or SSPI |
| 199 | (native 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) |