Rob Crittenden added support for NSS (Network Security Service) for the
[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  - 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
37 HTTP
38  - HTTP/1.1 compliant (optionally uses 1.0)
39  - GET
40  - PUT
41  - HEAD
42  - POST
43  - multipart formpost (RFC1867-style)
44  - authentication: Basic, Digest, NTLM(*1), GSS-Negotiate/Negotiate(*3) and
45    SPNEGO (*4) to server and proxy
46  - resume (both GET and PUT)
47  - follow redirects
48  - maximum amount of redirects to follow
49  - custom HTTP request
50  - cookie get/send fully parsed
51  - reads/writes the netscape cookie file format
52  - custom headers (replace/remove internally generated headers)
53  - custom user-agent string
54  - custom referer string
55  - range
56  - proxy authentication
57  - time conditions
58  - via http-proxy
59  - retrieve file modification date
60  - Content-Encoding support for deflate and gzip
61  - "Transfer-Encoding: chunked" support for "uploads"
62
63 HTTPS (*1)
64  - (all the HTTP features)
65  - using client certificates
66  - verify server certificate
67  - via http-proxy
68  - select desired encryption
69  - force usage of a specific SSL version (SSLv2(*7), SSLv3 or TLSv1)
70
71 FTP
72  - download
73  - authentication
74  - kerberos4 (*5)
75  - active/passive using PORT, EPRT, PASV or EPSV
76  - single file size information (compare to HTTP HEAD)
77  - 'type=' URL support
78  - dir listing
79  - dir listing names-only
80  - upload
81  - upload append
82  - upload via http-proxy as HTTP PUT
83  - download resume
84  - upload resume
85  - custom ftp commands (before and/or after the transfer)
86  - simple "range" support
87  - via http-proxy
88  - all operations can be tunneled through a http-proxy
89  - customizable to retrieve file modification date
90  - no dir depth limit
91
92 FTPS (*1)
93  - implicit ftps:// support that use SSL on both connections
94  - explicit "AUTH TSL" and "AUTH SSL" usage to "upgrade" plain ftp://
95    connection to use SSL for both or one of the connections
96
97 TFTP
98  - download / upload
99
100 TELNET
101  - connection negotiation
102  - custom telnet options
103  - stdin/stdout I/O
104
105 LDAP (*2)
106  - full LDAP URL support
107
108 DICT
109  - extended DICT URL support
110
111 FILE
112  - URL support
113  - "uploads"
114  - resume
115
116 FOOTNOTES
117 =========
118
119   *1 = requires OpenSSL, GnuTLS or NSS
120   *2 = requires OpenLDAP
121   *3 = requires a GSSAPI-compliant library, such as Heimdal or similar.
122   *4 = requires FBopenssl
123   *5 = requires a krb4 library, such as the MIT one or similar.
124   *6 = requires c-ares
125   *7 = requires OpenSSL or NSS, as GnuTLS only supports SSLv3 and TLSv1