| _ _ ____ _ | |
| ___| | | | _ \| | | |
| / __| | | | |_) | | | |
| | (__| |_| | _ <| |___ | |
| \___|\___/|_| \_\_____| | |
| 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 |