FEATURES: More NTLM and SSL changes, added two others, fixed typo
[platform/upstream/curl.git] / docs / FEATURES
1                                   _   _ ____  _
2                               ___| | | |  _ \| |
3                              / __| | | | |_) | |
4                             | (__| |_| |  _ <| |___
5                              \___|\___/|_| \_\_____|
6
7 FEATURES
8
9 curl 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
17 libcurl 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  - persistent 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  - replaceable memory functions (malloc, free, realloc, etc)
35  - asynchronous name resolving (*6)
36  - both a push and a pull style interface
37  - international domain names (*11)
38
39 HTTP
40  - HTTP/1.1 compliant (optionally uses 1.0)
41  - GET
42  - PUT
43  - HEAD
44  - POST
45  - Pipelining
46  - multipart formpost (RFC1867-style)
47  - authentication: Basic, Digest, NTLM (*9), GSS-Negotiate/Negotiate (*3) and
48    SPNEGO (*4) to server and proxy
49  - resume (both GET and PUT)
50  - follow redirects
51  - maximum amount of redirects to follow
52  - custom HTTP request
53  - cookie get/send fully parsed
54  - reads/writes the netscape cookie file format
55  - custom headers (replace/remove internally generated headers)
56  - custom user-agent string
57  - custom referer string
58  - range
59  - proxy authentication
60  - time conditions
61  - via http-proxy
62  - retrieve file modification date
63  - Content-Encoding support for deflate and gzip
64  - "Transfer-Encoding: chunked" support for "uploads"
65  - data compression (*12)
66
67 HTTPS (*1)
68  - (all the HTTP features)
69  - using client certificates
70  - verify server certificate
71  - via http-proxy
72  - select desired encryption
73  - force usage of a specific SSL version (SSLv2 (*7), SSLv3 (*10) or TLSv1)
74
75 FTP
76  - download
77  - authentication
78  - kerberos4 (*5), kerberos5 (*3)
79  - active/passive using PORT, EPRT, PASV or EPSV
80  - single file size information (compare to HTTP HEAD)
81  - 'type=' URL support
82  - dir listing
83  - dir listing names-only
84  - upload
85  - upload append
86  - upload via http-proxy as HTTP PUT
87  - download resume
88  - upload resume
89  - custom ftp commands (before and/or after the transfer)
90  - simple "range" support
91  - via http-proxy
92  - all operations can be tunneled through a http-proxy
93  - customizable to retrieve file modification date
94  - no dir depth limit
95
96 FTPS (*1)
97  - implicit ftps:// support that use SSL on both connections
98  - explicit "AUTH TLS" and "AUTH SSL" usage to "upgrade" plain ftp://
99    connection to use SSL for both or one of the connections
100
101 SCP (*8)
102  - both password and public key auth
103
104 SFTP (*8)
105  - both password and public key auth
106  - with custom commands sent before/after the transfer
107
108 TFTP
109  - download / upload
110
111 TELNET
112  - connection negotiation
113  - custom telnet options
114  - stdin/stdout I/O
115
116 LDAP (*2)
117  - full LDAP URL support
118
119 DICT
120  - extended DICT URL support
121
122 FILE
123  - URL support
124  - "uploads"
125  - resume
126
127 SMTP
128  - authentication: Plain, Login, CRAM-MD5, Digest-MD5 and NTLM (*9)
129  - send mail
130  - mail from support
131  - mail size support
132  - mail auth support for trusted server-to-server relaying
133  - multiple recipients
134  - via http-proxy
135
136 SMTPS (*1)
137  - implicit smtps:// support
138  - explicit "STARTTLS" usage to "upgrade" plain smtp:// connections to use SSL
139  - via http-proxy
140
141 POP3
142  - authentication: Clear Text, APOP and SASL
143  - SASL based authentication: Plain, Login, CRAM-MD5, Digest-MD5 and
144    NTLM (*9)
145  - list e-mails
146  - retrieve e-mails
147  - enhanced command support for: CAPA, DELE, TOP, STAT, UIDL and NOOP
148  - via http-proxy
149
150 POP3S (*1)
151  - implicit pop3s:// support
152  - explicit "STLS" usage to "upgrade" plain pop3:// connections to use SSL
153  - via http-proxy
154
155 IMAP
156  - authentication: Clear Text and SASL
157  - select mailbox
158  - basic fetch e-mail support
159  - SASL based authentication: Plain, Login, CRAM-MD5, Digest-MD5 and
160    NTLM (*9)
161  - via http-proxy
162
163 IMAPS (*1)
164  - implicit imaps:// support
165  - explicit "STARTTLS" usage to "upgrade" plain imap:// connections to use SSL
166  - via http-proxy
167
168 FOOTNOTES
169 =========
170
171   *1 = requires OpenSSL, GnuTLS, NSS, yassl, axTLS, PolarSSL, schannel (native
172        Windows), Secure Transport (native iOS/OS X)  or qssl (native IBM i)
173   *2 = requires OpenLDAP
174   *3 = requires a GSSAPI-compliant library, such as Heimdal or similar.
175   *4 = requires FBopenssl
176   *5 = requires a krb4 library, such as the MIT one or similar.
177   *6 = requires c-ares
178   *7 = requires OpenSSL, NSS, qssl, schannel, or Secure Transport; GnuTLS, for
179        example, only supports SSLv3 and TLSv1
180   *8 = requires libssh2
181   *9 = requires OpenSSL, GnuTLS, NSS, yassl, Secure Transport, or SSPI (native
182        Windows)
183   *10 = requires any of the SSL libraries in (*1) above other than axTLS, which
184         does not support SSLv3
185   *11 = requires libidn or Windows
186   *12 = requires libz