| _ _ ____ _ |
| ___| | | | _ \| | |
| / __| | | | |_) | | |
| | (__| |_| | _ <| |___ |
| \___|\___/|_| \_\_____| |
| |
| 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 |
| |
| libcurl supports |
| - 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/time specs 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 |
| - persistant connections |
| - socks5 support |
| - supports user name + password in proxy environment variables |
| - operations through proxy "tunnel" (using CONNECT) |
| - supports large files (>2GB and >4GB) both upload/download |
| - replacable memory functions (malloc, free, realloc, etc) |
| - asynchronous name resolving (*6) |
| - both a push and a pull style interface |
| |
| HTTP |
| - HTTP/1.1 compliant (optionally uses 1.0) |
| - GET |
| - PUT |
| - HEAD |
| - POST |
| - Pipelining |
| - multipart formpost (RFC1867-style) |
| - authentication: Basic, Digest, NTLM(*9), GSS-Negotiate/Negotiate(*3) and |
| SPNEGO (*4) 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 referer string |
| - range |
| - proxy authentication |
| - time conditions |
| - via http-proxy |
| - retrieve file modification date |
| - Content-Encoding support for deflate and gzip |
| - "Transfer-Encoding: chunked" support for "uploads" |
| |
| 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 or TLSv1) |
| |
| FTP |
| - download |
| - authentication |
| - kerberos4 (*5), kerberos5 (*3) |
| - 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 TSL" 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 |
| - "uploads" |
| - resume |
| |
| FOOTNOTES |
| ========= |
| |
| *1 = requires OpenSSL, GnuTLS, NSS, yassl, axTLS or PolarSSL |
| *2 = requires OpenLDAP |
| *3 = requires a GSSAPI-compliant library, such as Heimdal or similar. |
| *4 = requires FBopenssl |
| *5 = requires a krb4 library, such as the MIT one or similar. |
| *6 = requires c-ares |
| *7 = requires OpenSSL or NSS, as GnuTLS only supports SSLv3 and TLSv1 |
| *8 = requires libssh2 |
| *9 = requires OpenSSL, GnuTLS, NSS or yassl |