1 _ _ ____ _ 2 ___| | | | _ \| | 3 / __| | | | |_) | | 4 | (__| |_| | _ <| |___ 5 \___|\___/|_| \_\_____| 6 7FEATURES 8 9curl 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 17libcurl supports 18 - full URL syntax with no length limit 19 - custom maximum download time 20 - custom least download speed acceptable 21 - custom output result after completion 22 - guesses protocol from host name unless specified 23 - uses .netrc 24 - progress bar/time specs while downloading 25 - "standard" proxy environment variables support 26 - compiles on win32 (reported builds on 40+ operating systems) 27 - selectable network interface for outgoing traffic 28 - IPv6 support on unix and Windows 29 - persistant connections 30 - socks5 support 31 - supports user name + password in proxy environment variables 32 - operations through proxy "tunnel" (using CONNECT) 33 - supports large files (>2GB and >4GB) both upload/download 34 - replacable memory functions (malloc, free, realloc, etc) 35 - asynchronous name resolving (*6) 36 - both a push and a pull style interface 37 38HTTP 39 - HTTP/1.1 compliant (optionally uses 1.0) 40 - GET 41 - PUT 42 - HEAD 43 - POST 44 - Pipelining 45 - multipart formpost (RFC1867-style) 46 - authentication: Basic, Digest, NTLM(*9), GSS-Negotiate/Negotiate(*3) and 47 SPNEGO (*4) to server and proxy 48 - resume (both GET and PUT) 49 - follow redirects 50 - maximum amount of redirects to follow 51 - custom HTTP request 52 - cookie get/send fully parsed 53 - reads/writes the netscape cookie file format 54 - custom headers (replace/remove internally generated headers) 55 - custom user-agent string 56 - custom referer string 57 - range 58 - proxy authentication 59 - time conditions 60 - via http-proxy 61 - retrieve file modification date 62 - Content-Encoding support for deflate and gzip 63 - "Transfer-Encoding: chunked" support for "uploads" 64 65HTTPS (*1) 66 - (all the HTTP features) 67 - using client certificates 68 - verify server certificate 69 - via http-proxy 70 - select desired encryption 71 - force usage of a specific SSL version (SSLv2(*7), SSLv3 or TLSv1) 72 73FTP 74 - download 75 - authentication 76 - kerberos4 (*5), kerberos5 (*3) 77 - active/passive using PORT, EPRT, PASV or EPSV 78 - single file size information (compare to HTTP HEAD) 79 - 'type=' URL support 80 - dir listing 81 - dir listing names-only 82 - upload 83 - upload append 84 - upload via http-proxy as HTTP PUT 85 - download resume 86 - upload resume 87 - custom ftp commands (before and/or after the transfer) 88 - simple "range" support 89 - via http-proxy 90 - all operations can be tunneled through a http-proxy 91 - customizable to retrieve file modification date 92 - no dir depth limit 93 94FTPS (*1) 95 - implicit ftps:// support that use SSL on both connections 96 - explicit "AUTH TSL" and "AUTH SSL" usage to "upgrade" plain ftp:// 97 connection to use SSL for both or one of the connections 98 99SCP (*8) 100 - both password and public key auth 101 102SFTP (*8) 103 - both password and public key auth 104 - with custom commands sent before/after the transfer 105 106TFTP 107 - download / upload 108 109TELNET 110 - connection negotiation 111 - custom telnet options 112 - stdin/stdout I/O 113 114LDAP (*2) 115 - full LDAP URL support 116 117DICT 118 - extended DICT URL support 119 120FILE 121 - URL support 122 - "uploads" 123 - resume 124 125FOOTNOTES 126========= 127 128 *1 = requires OpenSSL, GnuTLS, NSS, yassl, axTLS or PolarSSL 129 *2 = requires OpenLDAP 130 *3 = requires a GSSAPI-compliant library, such as Heimdal or similar. 131 *4 = requires FBopenssl 132 *5 = requires a krb4 library, such as the MIT one or similar. 133 *6 = requires c-ares 134 *7 = requires OpenSSL or NSS, as GnuTLS only supports SSLv3 and TLSv1 135 *8 = requires libssh2 136 *9 = requires OpenSSL, GnuTLS, NSS or yassl 137