summaryrefslogtreecommitdiff
path: root/docs/FEATURES
diff options
context:
space:
mode:
Diffstat (limited to 'docs/FEATURES')
-rw-r--r--docs/FEATURES136
1 files changed, 136 insertions, 0 deletions
diff --git a/docs/FEATURES b/docs/FEATURES
new file mode 100644
index 000000000..32589e1d3
--- /dev/null
+++ b/docs/FEATURES
@@ -0,0 +1,136 @@
+ _ _ ____ _
+ ___| | | | _ \| |
+ / __| | | | |_) | |
+ | (__| |_| | _ <| |___
+ \___|\___/|_| \_\_____|
+
+FEATURES
+
+curl tool
+ - config file support
+ - multiple URLs in a single command line
+ - range "globbing" support: [0-13], {one,two,three}
+ - multiple file upload on a single command line
+ - custom maximum transfer rate
+ - redirectable stderr
+
+libcurl supports
+ - full URL syntax with no length limit
+ - custom maximum download time
+ - custom least download speed acceptable
+ - custom output result after completion
+ - guesses protocol from host name unless specified
+ - uses .netrc
+ - progress bar/time specs while downloading
+ - "standard" proxy environment variables support
+ - compiles on win32 (reported builds on 40+ operating systems)
+ - selectable network interface for outgoing traffic
+ - IPv6 support on unix and Windows
+ - persistant connections
+ - socks5 support
+ - supports user name + password in proxy environment variables
+ - operations through proxy "tunnel" (using CONNECT)
+ - supports large files (>2GB and >4GB) both upload/download
+ - replacable memory functions (malloc, free, realloc, etc)
+ - asynchronous name resolving (*6)
+ - both a push and a pull style interface
+
+HTTP
+ - HTTP/1.1 compliant (optionally uses 1.0)
+ - GET
+ - PUT
+ - HEAD
+ - POST
+ - Pipelining
+ - multipart formpost (RFC1867-style)
+ - authentication: Basic, Digest, NTLM(*9), GSS-Negotiate/Negotiate(*3) and
+ SPNEGO (*4) to server and proxy
+ - resume (both GET and PUT)
+ - follow redirects
+ - maximum amount of redirects to follow
+ - custom HTTP request
+ - cookie get/send fully parsed
+ - reads/writes the netscape cookie file format
+ - custom headers (replace/remove internally generated headers)
+ - custom user-agent string
+ - custom referer string
+ - range
+ - proxy authentication
+ - time conditions
+ - via http-proxy
+ - retrieve file modification date
+ - Content-Encoding support for deflate and gzip
+ - "Transfer-Encoding: chunked" support for "uploads"
+
+HTTPS (*1)
+ - (all the HTTP features)
+ - using client certificates
+ - verify server certificate
+ - via http-proxy
+ - select desired encryption
+ - force usage of a specific SSL version (SSLv2(*7), SSLv3 or TLSv1)
+
+FTP
+ - download
+ - authentication
+ - kerberos4 (*5), kerberos5 (*3)
+ - active/passive using PORT, EPRT, PASV or EPSV
+ - single file size information (compare to HTTP HEAD)
+ - 'type=' URL support
+ - dir listing
+ - dir listing names-only
+ - upload
+ - upload append
+ - upload via http-proxy as HTTP PUT
+ - download resume
+ - upload resume
+ - custom ftp commands (before and/or after the transfer)
+ - simple "range" support
+ - via http-proxy
+ - all operations can be tunneled through a http-proxy
+ - customizable to retrieve file modification date
+ - no dir depth limit
+
+FTPS (*1)
+ - implicit ftps:// support that use SSL on both connections
+ - explicit "AUTH TSL" and "AUTH SSL" usage to "upgrade" plain ftp://
+ connection to use SSL for both or one of the connections
+
+SCP (*8)
+ - both password and public key auth
+
+SFTP (*8)
+ - both password and public key auth
+ - with custom commands sent before/after the transfer
+
+TFTP
+ - download / upload
+
+TELNET
+ - connection negotiation
+ - custom telnet options
+ - stdin/stdout I/O
+
+LDAP (*2)
+ - full LDAP URL support
+
+DICT
+ - extended DICT URL support
+
+FILE
+ - URL support
+ - "uploads"
+ - resume
+
+FOOTNOTES
+=========
+
+ *1 = requires OpenSSL, GnuTLS, NSS, yassl or PolarSSL
+ *2 = requires OpenLDAP
+ *3 = requires a GSSAPI-compliant library, such as Heimdal or similar.
+ *4 = requires FBopenssl
+ *5 = requires a krb4 library, such as the MIT one or similar.
+ *6 = requires c-ares
+ *7 = requires OpenSSL or NSS, as GnuTLS only supports SSLv3 and TLSv1
+ *8 = requires libssh2
+ *9 = requires OpenSSL, GnuTLS, NSS or yassl