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