blob: 24fa56dd3f0ec098a5866ecf00b67b0bfef37fa9 [file] [log] [blame]
9487f7f2011-08-03 07:05:30 -07001 _ _ ____ _
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
Dirk Vogta7d7f962016-12-01 10:50:48 +010016 - metalink support (*13)
9487f7f2011-08-03 07:05:30 -070017
Dirk Vogta7d7f962016-12-01 10:50:48 +010018libcurl
9487f7f2011-08-03 07:05:30 -070019 - 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
Dirk Vogta7d7f962016-12-01 10:50:48 +010025 - progress bar with time statistics while downloading
9487f7f2011-08-03 07:05:30 -070026 - "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
Dirk Vogta7d7f962016-12-01 10:50:48 +010030 - persistent connections
31 - socks 4 + 5 support, with or without local name resolving
32 - supports user name and password in proxy environment variables
9487f7f2011-08-03 07:05:30 -070033 - operations through proxy "tunnel" (using CONNECT)
Dirk Vogta7d7f962016-12-01 10:50:48 +010034 - support for large files (>2GB and >4GB) during upload and download
35 - replaceable memory functions (malloc, free, realloc, etc)
9487f7f2011-08-03 07:05:30 -070036 - asynchronous name resolving (*6)
37 - both a push and a pull style interface
Dirk Vogta7d7f962016-12-01 10:50:48 +010038 - international domain names (*11)
9487f7f2011-08-03 07:05:30 -070039
40HTTP
41 - HTTP/1.1 compliant (optionally uses 1.0)
42 - GET
43 - PUT
44 - HEAD
45 - POST
46 - Pipelining
47 - multipart formpost (RFC1867-style)
Dirk Vogta7d7f962016-12-01 10:50:48 +010048 - authentication: Basic, Digest, NTLM (*9) and Negotiate (SPNEGO) (*3)
49 to server and proxy
9487f7f2011-08-03 07:05:30 -070050 - 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
Dirk Vogta7d7f962016-12-01 10:50:48 +010058 - custom referrer string
9487f7f2011-08-03 07:05:30 -070059 - range
60 - proxy authentication
61 - time conditions
62 - via http-proxy
63 - retrieve file modification date
64 - Content-Encoding support for deflate and gzip
Dirk Vogta7d7f962016-12-01 10:50:48 +010065 - "Transfer-Encoding: chunked" support in uploads
66 - data compression (*12)
67 - HTTP/2 (*5)
9487f7f2011-08-03 07:05:30 -070068
69HTTPS (*1)
70 - (all the HTTP features)
71 - using client certificates
72 - verify server certificate
73 - via http-proxy
74 - select desired encryption
Dirk Vogta7d7f962016-12-01 10:50:48 +010075 - force usage of a specific SSL version (SSLv2 (*7), SSLv3 (*10) or TLSv1)
9487f7f2011-08-03 07:05:30 -070076
77FTP
78 - download
79 - authentication
Dirk Vogta7d7f962016-12-01 10:50:48 +010080 - Kerberos 5 (*14)
9487f7f2011-08-03 07:05:30 -070081 - 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
98FTPS (*1)
99 - implicit ftps:// support that use SSL on both connections
Dirk Vogta7d7f962016-12-01 10:50:48 +0100100 - explicit "AUTH TLS" and "AUTH SSL" usage to "upgrade" plain ftp://
9487f7f2011-08-03 07:05:30 -0700101 connection to use SSL for both or one of the connections
102
103SCP (*8)
104 - both password and public key auth
105
106SFTP (*8)
107 - both password and public key auth
108 - with custom commands sent before/after the transfer
109
110TFTP
Dirk Vogta7d7f962016-12-01 10:50:48 +0100111 - download
112 - upload
9487f7f2011-08-03 07:05:30 -0700113
114TELNET
115 - connection negotiation
116 - custom telnet options
117 - stdin/stdout I/O
118
119LDAP (*2)
120 - full LDAP URL support
121
122DICT
123 - extended DICT URL support
124
125FILE
126 - URL support
Dirk Vogta7d7f962016-12-01 10:50:48 +0100127 - upload
9487f7f2011-08-03 07:05:30 -0700128 - resume
129
Dirk Vogta7d7f962016-12-01 10:50:48 +0100130SMB
131 - SMBv1 over TCP and SSL
132 - download
133 - upload
134 - authentication with NTLMv1
135
136SMTP
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
146SMTPS (*1)
147 - implicit smtps:// support
148 - explicit "STARTTLS" usage to "upgrade" plain smtp:// connections to use SSL
149 - via http-proxy
150
151POP3
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
161POP3S (*1)
162 - implicit pop3s:// support
163 - explicit "STLS" usage to "upgrade" plain pop3:// connections to use SSL
164 - via http-proxy
165
166IMAP
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
178IMAPS (*1)
179 - implicit imaps:// support
180 - explicit "STARTTLS" usage to "upgrade" plain imap:// connections to use SSL
181 - via http-proxy
182
9487f7f2011-08-03 07:05:30 -0700183FOOTNOTES
184=========
185
Dirk Vogta7d7f962016-12-01 10:50:48 +0100186 *1 = requires OpenSSL, GnuTLS, NSS, yassl, axTLS, PolarSSL, WinSSL (native
187 Windows), Secure Transport (native iOS/OS X) or GSKit (native IBM i)
9487f7f2011-08-03 07:05:30 -0700188 *2 = requires OpenLDAP
Dirk Vogta7d7f962016-12-01 10:50:48 +0100189 *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
9487f7f2011-08-03 07:05:30 -0700194 *6 = requires c-ares
Dirk Vogta7d7f962016-12-01 10:50:48 +0100195 *7 = requires OpenSSL, NSS, GSKit, WinSSL or Secure Transport; GnuTLS, for
196 example, only supports SSLv3 and TLSv1
9487f7f2011-08-03 07:05:30 -0700197 *8 = requires libssh2
Dirk Vogta7d7f962016-12-01 10:50:48 +0100198 *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)