docs/FEATURE: convert to markdown

... and clean it up a bit.

Closes #6067
This commit is contained in:
Daniel Stenberg 2020-10-13 17:34:40 +02:00
parent 5168e5ad1d
commit 621e147ca7
No known key found for this signature in database
GPG Key ID: 5CC908FDB71E12C2
2 changed files with 98 additions and 82 deletions

View File

@ -1,21 +1,18 @@
_ _ ____ _ # Features -- what curl can do
___| | | | _ \| |
/ __| | | | |_) | |
| (__| |_| | _ <| |___
\___|\___/|_| \_\_____|
FEATURES ## curl tool
curl tool
- config file support - config file support
- multiple URLs in a single command line - multiple URLs in a single command line
- range "globbing" support: [0-13], {one,two,three} - range "globbing" support: [0-13], {one,two,three}
- multiple file upload on a single command line - multiple file upload on a single command line
- custom maximum transfer rate - custom maximum transfer rate
- redirectable stderr - redirectable stderr
- metalink support (*13) - metalink support (13)
- parallel transfers
## libcurl
libcurl
- full URL syntax with no length limit - full URL syntax with no length limit
- custom maximum download time - custom maximum download time
- custom least download speed acceptable - custom least download speed acceptable
@ -24,28 +21,31 @@ libcurl
- uses .netrc - uses .netrc
- progress bar with time statistics while downloading - progress bar with time statistics while downloading
- "standard" proxy environment variables support - "standard" proxy environment variables support
- compiles on win32 (reported builds on 40+ operating systems) - compiles on win32 (reported builds on 70+ operating systems)
- selectable network interface for outgoing traffic - selectable network interface for outgoing traffic
- IPv6 support on unix and Windows - IPv6 support on unix and Windows
- happy eyeballs dual-stack connects
- persistent connections - persistent connections
- socks 4 + 5 support, with or without local name resolving - SOCKS 4 + 5 support, with or without local name resolving
- supports user name and password in proxy environment variables - supports user name and password in proxy environment variables
- operations through proxy "tunnel" (using CONNECT) - operations through HTTP proxy "tunnel" (using CONNECT)
- support for large files (>2GB and >4GB) during upload and download
- replaceable memory functions (malloc, free, realloc, etc) - replaceable memory functions (malloc, free, realloc, etc)
- asynchronous name resolving (*6) - asynchronous name resolving (6)
- both a push and a pull style interface - both a push and a pull style interface
- international domain names (*11) - international domain names (11)
HTTP ## HTTP
- HTTP/1.1 compliant (optionally uses 1.0)
- HTTP/0.9 responses are optionally accepted
- HTTP/1.0
- HTTP/1.1
- HTTP/2, including multiplexing and server push (5)
- GET - GET
- PUT - PUT
- HEAD - HEAD
- POST - POST
- Pipelining
- multipart formpost (RFC1867-style) - multipart formpost (RFC1867-style)
- authentication: Basic, Digest, NTLM (*9) and Negotiate (SPNEGO) (*3) - authentication: Basic, Digest, NTLM (9) and Negotiate (SPNEGO) (3)
to server and proxy to server and proxy
- resume (both GET and PUT) - resume (both GET and PUT)
- follow redirects - follow redirects
@ -59,25 +59,27 @@ HTTP
- range - range
- proxy authentication - proxy authentication
- time conditions - time conditions
- via http-proxy - via HTTP proxy, HTTPS proxy or SOCKS proxy
- retrieve file modification date - retrieve file modification date
- Content-Encoding support for deflate and gzip - Content-Encoding support for deflate and gzip
- "Transfer-Encoding: chunked" support in uploads - "Transfer-Encoding: chunked" support in uploads
- data compression (*12) - automatic data compression (12)
- HTTP/2 (*5)
## HTTPS (1)
HTTPS (*1)
- (all the HTTP features) - (all the HTTP features)
- HTTP/3 experimental support
- using client certificates - using client certificates
- verify server certificate - verify server certificate
- via http-proxy - via HTTP proxy, HTTPS proxy or SOCKS proxy
- select desired encryption - select desired encryption
- force usage of a specific SSL version (SSLv2 (*7), SSLv3 (*10) or TLSv1) - select usage of a specific SSL version
## FTP
FTP
- download - download
- authentication - authentication
- Kerberos 5 (*14) - Kerberos 5 (14)
- active/passive using PORT, EPRT, PASV or EPSV - active/passive using PORT, EPRT, PASV or EPSV
- single file size information (compare to HTTP HEAD) - single file size information (compare to HTTP HEAD)
- 'type=' URL support - 'type=' URL support
@ -90,52 +92,62 @@ FTP
- upload resume - upload resume
- custom ftp commands (before and/or after the transfer) - custom ftp commands (before and/or after the transfer)
- simple "range" support - simple "range" support
- via http-proxy - via HTTP proxy, HTTPS proxy or SOCKS proxy
- all operations can be tunneled through a http-proxy - all operations can be tunneled through proxy
- customizable to retrieve file modification date - customizable to retrieve file modification date
- no dir depth limit - no dir depth limit
FTPS (*1) ## FTPS (1)
- implicit ftps:// support that use SSL on both connections
- explicit "AUTH TLS" and "AUTH SSL" usage to "upgrade" plain ftp:// - implicit `ftps://` support that use SSL on both connections
- explicit "AUTH TLS" and "AUTH SSL" usage to "upgrade" plain `ftp://`
connection to use SSL for both or one of the connections connection to use SSL for both or one of the connections
SCP (*8) ## SCP (8)
- both password and public key auth - both password and public key auth
SFTP (*8) ## SFTP (7)
- both password and public key auth - both password and public key auth
- with custom commands sent before/after the transfer - with custom commands sent before/after the transfer
TFTP ## TFTP
- download - download
- upload - upload
TELNET ## TELNET
- connection negotiation - connection negotiation
- custom telnet options - custom telnet options
- stdin/stdout I/O - stdin/stdout I/O
LDAP (*2) ## LDAP (2)
- full LDAP URL support - full LDAP URL support
DICT ## DICT
- extended DICT URL support - extended DICT URL support
FILE ## FILE
- URL support - URL support
- upload - upload
- resume - resume
SMB ## SMB
- SMBv1 over TCP and SSL - SMBv1 over TCP and SSL
- download - download
- upload - upload
- authentication with NTLMv1 - authentication with NTLMv1
SMTP ## SMTP
- authentication: Plain, Login, CRAM-MD5, Digest-MD5, NTLM (*9), Kerberos 5
(*4) and External. - authentication: Plain, Login, CRAM-MD5, Digest-MD5, NTLM (9), Kerberos 5
(4) and External.
- send e-mails - send e-mails
- mail from support - mail from support
- mail size support - mail size support
@ -143,30 +155,34 @@ SMTP
- multiple recipients - multiple recipients
- via http-proxy - via http-proxy
SMTPS (*1) ## SMTPS (1)
- implicit smtps:// support
- explicit "STARTTLS" usage to "upgrade" plain smtp:// connections to use SSL - implicit `smtps://` support
- explicit "STARTTLS" usage to "upgrade" plain `smtp://` connections to use SSL
- via http-proxy - via http-proxy
POP3 ## POP3
- authentication: Clear Text, APOP and SASL - authentication: Clear Text, APOP and SASL
- SASL based authentication: Plain, Login, CRAM-MD5, Digest-MD5, NTLM (*9), - SASL based authentication: Plain, Login, CRAM-MD5, Digest-MD5, NTLM (9),
Kerberos 5 (*4) and External. Kerberos 5 (4) and External.
- list e-mails - list e-mails
- retrieve e-mails - retrieve e-mails
- enhanced command support for: CAPA, DELE, TOP, STAT, UIDL and NOOP via - enhanced command support for: CAPA, DELE, TOP, STAT, UIDL and NOOP via
custom requests custom requests
- via http-proxy - via http-proxy
POP3S (*1) ## POP3S (1)
- implicit pop3s:// support
- explicit "STLS" usage to "upgrade" plain pop3:// connections to use SSL - implicit `pop3s://` support
- explicit "STLS" usage to "upgrade" plain `pop3://` connections to use SSL
- via http-proxy - via http-proxy
IMAP ## IMAP
- authentication: Clear Text and SASL - authentication: Clear Text and SASL
- SASL based authentication: Plain, Login, CRAM-MD5, Digest-MD5, NTLM (*9), - SASL based authentication: Plain, Login, CRAM-MD5, Digest-MD5, NTLM (9),
Kerberos 5 (*4) and External. Kerberos 5 (4) and External.
- list the folders of a mailbox - list the folders of a mailbox
- select a mailbox with support for verifying the UIDVALIDITY - select a mailbox with support for verifying the UIDVALIDITY
- fetch e-mails with support for specifying the UID and SECTION - fetch e-mails with support for specifying the UID and SECTION
@ -175,33 +191,33 @@ IMAP
STORE, COPY and UID via custom requests STORE, COPY and UID via custom requests
- via http-proxy - via http-proxy
IMAPS (*1) ## IMAPS (1)
- implicit imaps:// support
- explicit "STARTTLS" usage to "upgrade" plain imap:// connections to use SSL - implicit `imaps://` support
- explicit "STARTTLS" usage to "upgrade" plain `imap://` connections to use SSL
- via http-proxy - via http-proxy
MQTT ## MQTT
- Subscribe to and publish topics using url scheme mqtt://broker/topic
FOOTNOTES - Subscribe to and publish topics using url scheme `mqtt://broker/topic`
=========
*1 = requires a TLS library ## Footnotes
*2 = requires OpenLDAP or WinLDAP
*3 = requires a GSS-API implementation (such as Heimdal or MIT Kerberos) or 1. requires a TLS library
SSPI (native Windows) 2. requires OpenLDAP or WinLDAP
*4 = requires a GSS-API implementation, however, only Windows SSPI is 3. requires a GSS-API implementation (such as Heimdal or MIT Kerberos) or
currently supported SSPI (native Windows)
*5 = requires nghttp2 and possibly a recent TLS library 4. requires a GSS-API implementation, however, only Windows SSPI is
*6 = requires c-ares currently supported
*7 = requires OpenSSL, NSS, GSKit, Schannel or Secure Transport; GnuTLS, for 5. requires nghttp2
example, only supports SSLv3 and TLSv1 6. requires c-ares
*8 = requires libssh2 7. requires libssh2, libssh or wolfSSH
*9 = requires OpenSSL, GnuTLS, mbedTLS, NSS, yassl, Secure Transport or SSPI 8. requires libssh2 or libssh
(native Windows) 9. requires OpenSSL, GnuTLS, mbedTLS, NSS, yassl, Secure Transport or SSPI
*10 = requires an SSL library that supports SSLv3 (native Windows)
*11 = requires libidn or Windows 10. -
*12 = requires libz 11. requires libidn2 or Windows
*13 = requires libmetalink, and either an Apple or Microsoft operating 12. requires libz, brotli and/or zstd
system, or OpenSSL, or GnuTLS, or NSS 13. requires libmetalink, and either an Apple or Microsoft operating
*14 = requires a GSS-API implementation (such as Heimdal or MIT Kerberos) system, or OpenSSL, or GnuTLS, or NSS
14. requires a GSS-API implementation (such as Heimdal or MIT Kerberos)

View File

@ -59,7 +59,7 @@ EXTRA_DIST = \
ECH.md \ ECH.md \
EXPERIMENTAL.md \ EXPERIMENTAL.md \
FAQ \ FAQ \
FEATURES \ FEATURES.md \
GOVERNANCE.md \ GOVERNANCE.md \
HELP-US.md \ HELP-US.md \
HISTORY.md \ HISTORY.md \