113498266Sopenharmony_ci# Features -- what curl can do
213498266Sopenharmony_ci
313498266Sopenharmony_ci## curl tool
413498266Sopenharmony_ci
513498266Sopenharmony_ci - config file support
613498266Sopenharmony_ci - multiple URLs in a single command line
713498266Sopenharmony_ci - range "globbing" support: [0-13], {one,two,three}
813498266Sopenharmony_ci - multiple file upload on a single command line
913498266Sopenharmony_ci - custom maximum transfer rate
1013498266Sopenharmony_ci - redirect stderr
1113498266Sopenharmony_ci - parallel transfers
1213498266Sopenharmony_ci
1313498266Sopenharmony_ci## libcurl
1413498266Sopenharmony_ci
1513498266Sopenharmony_ci - URL RFC 3986 syntax
1613498266Sopenharmony_ci - custom maximum download time
1713498266Sopenharmony_ci - custom least download speed acceptable
1813498266Sopenharmony_ci - custom output result after completion
1913498266Sopenharmony_ci - guesses protocol from hostname unless specified
2013498266Sopenharmony_ci - uses .netrc
2113498266Sopenharmony_ci - progress bar with time statistics while downloading
2213498266Sopenharmony_ci - "standard" proxy environment variables support
2313498266Sopenharmony_ci - compiles on win32 (reported builds on 70+ operating systems)
2413498266Sopenharmony_ci - selectable network interface for outgoing traffic
2513498266Sopenharmony_ci - IPv6 support on Unix and Windows
2613498266Sopenharmony_ci - happy eyeballs dual-stack connects
2713498266Sopenharmony_ci - persistent connections
2813498266Sopenharmony_ci - SOCKS 4 + 5 support, with or without local name resolving
2913498266Sopenharmony_ci - supports user name and password in proxy environment variables
3013498266Sopenharmony_ci - operations through HTTP proxy "tunnel" (using CONNECT)
3113498266Sopenharmony_ci - replaceable memory functions (malloc, free, realloc, etc)
3213498266Sopenharmony_ci - asynchronous name resolving (6)
3313498266Sopenharmony_ci - both a push and a pull style interface
3413498266Sopenharmony_ci - international domain names (10)
3513498266Sopenharmony_ci
3613498266Sopenharmony_ci## HTTP
3713498266Sopenharmony_ci
3813498266Sopenharmony_ci - HTTP/0.9 responses are optionally accepted
3913498266Sopenharmony_ci - HTTP/1.0
4013498266Sopenharmony_ci - HTTP/1.1
4113498266Sopenharmony_ci - HTTP/2, including multiplexing and server push (5)
4213498266Sopenharmony_ci - GET
4313498266Sopenharmony_ci - PUT
4413498266Sopenharmony_ci - HEAD
4513498266Sopenharmony_ci - POST
4613498266Sopenharmony_ci - multipart formpost (RFC 1867-style)
4713498266Sopenharmony_ci - authentication: Basic, Digest, NTLM (9) and Negotiate (SPNEGO) (3)
4813498266Sopenharmony_ci   to server and proxy
4913498266Sopenharmony_ci - resume (both GET and PUT)
5013498266Sopenharmony_ci - follow redirects
5113498266Sopenharmony_ci - maximum amount of redirects to follow
5213498266Sopenharmony_ci - custom HTTP request
5313498266Sopenharmony_ci - cookie get/send fully parsed
5413498266Sopenharmony_ci - reads/writes the Netscape cookie file format
5513498266Sopenharmony_ci - custom headers (replace/remove internally generated headers)
5613498266Sopenharmony_ci - custom user-agent string
5713498266Sopenharmony_ci - custom referrer string
5813498266Sopenharmony_ci - range
5913498266Sopenharmony_ci - proxy authentication
6013498266Sopenharmony_ci - time conditions
6113498266Sopenharmony_ci - via HTTP proxy, HTTPS proxy or SOCKS proxy
6213498266Sopenharmony_ci - retrieve file modification date
6313498266Sopenharmony_ci - Content-Encoding support for deflate and gzip
6413498266Sopenharmony_ci - "Transfer-Encoding: chunked" support in uploads
6513498266Sopenharmony_ci - automatic data compression (11)
6613498266Sopenharmony_ci
6713498266Sopenharmony_ci## HTTPS (1)
6813498266Sopenharmony_ci
6913498266Sopenharmony_ci - (all the HTTP features)
7013498266Sopenharmony_ci - HTTP/3 experimental support
7113498266Sopenharmony_ci - using client certificates
7213498266Sopenharmony_ci - verify server certificate
7313498266Sopenharmony_ci - via HTTP proxy, HTTPS proxy or SOCKS proxy
7413498266Sopenharmony_ci - select desired encryption
7513498266Sopenharmony_ci - select usage of a specific SSL version
7613498266Sopenharmony_ci
7713498266Sopenharmony_ci## FTP
7813498266Sopenharmony_ci
7913498266Sopenharmony_ci - download
8013498266Sopenharmony_ci - authentication
8113498266Sopenharmony_ci - Kerberos 5 (12)
8213498266Sopenharmony_ci - active/passive using PORT, EPRT, PASV or EPSV
8313498266Sopenharmony_ci - single file size information (compare to HTTP HEAD)
8413498266Sopenharmony_ci - 'type=' URL support
8513498266Sopenharmony_ci - directory listing
8613498266Sopenharmony_ci - directory listing names-only
8713498266Sopenharmony_ci - upload
8813498266Sopenharmony_ci - upload append
8913498266Sopenharmony_ci - upload via http-proxy as HTTP PUT
9013498266Sopenharmony_ci - download resume
9113498266Sopenharmony_ci - upload resume
9213498266Sopenharmony_ci - custom ftp commands (before and/or after the transfer)
9313498266Sopenharmony_ci - simple "range" support
9413498266Sopenharmony_ci - via HTTP proxy, HTTPS proxy or SOCKS proxy
9513498266Sopenharmony_ci - all operations can be tunneled through proxy
9613498266Sopenharmony_ci - customizable to retrieve file modification date
9713498266Sopenharmony_ci - no directory depth limit
9813498266Sopenharmony_ci
9913498266Sopenharmony_ci## FTPS (1)
10013498266Sopenharmony_ci
10113498266Sopenharmony_ci - implicit `ftps://` support that use SSL on both connections
10213498266Sopenharmony_ci - explicit "AUTH TLS" and "AUTH SSL" usage to "upgrade" plain `ftp://`
10313498266Sopenharmony_ci   connection to use SSL for both or one of the connections
10413498266Sopenharmony_ci
10513498266Sopenharmony_ci## SCP (8)
10613498266Sopenharmony_ci
10713498266Sopenharmony_ci - both password and public key auth
10813498266Sopenharmony_ci
10913498266Sopenharmony_ci## SFTP (7)
11013498266Sopenharmony_ci
11113498266Sopenharmony_ci - both password and public key auth
11213498266Sopenharmony_ci - with custom commands sent before/after the transfer
11313498266Sopenharmony_ci
11413498266Sopenharmony_ci## TFTP
11513498266Sopenharmony_ci
11613498266Sopenharmony_ci - download
11713498266Sopenharmony_ci - upload
11813498266Sopenharmony_ci
11913498266Sopenharmony_ci## TELNET
12013498266Sopenharmony_ci
12113498266Sopenharmony_ci - connection negotiation
12213498266Sopenharmony_ci - custom telnet options
12313498266Sopenharmony_ci - stdin/stdout I/O
12413498266Sopenharmony_ci
12513498266Sopenharmony_ci## LDAP (2)
12613498266Sopenharmony_ci
12713498266Sopenharmony_ci - full LDAP URL support
12813498266Sopenharmony_ci
12913498266Sopenharmony_ci## DICT
13013498266Sopenharmony_ci
13113498266Sopenharmony_ci - extended DICT URL support
13213498266Sopenharmony_ci
13313498266Sopenharmony_ci## FILE
13413498266Sopenharmony_ci
13513498266Sopenharmony_ci - URL support
13613498266Sopenharmony_ci - upload
13713498266Sopenharmony_ci - resume
13813498266Sopenharmony_ci
13913498266Sopenharmony_ci## SMB
14013498266Sopenharmony_ci
14113498266Sopenharmony_ci - SMBv1 over TCP and SSL
14213498266Sopenharmony_ci - download
14313498266Sopenharmony_ci - upload
14413498266Sopenharmony_ci - authentication with NTLMv1
14513498266Sopenharmony_ci
14613498266Sopenharmony_ci## SMTP
14713498266Sopenharmony_ci
14813498266Sopenharmony_ci - authentication: Plain, Login, CRAM-MD5, Digest-MD5, NTLM (9), Kerberos 5
14913498266Sopenharmony_ci   (4) and External.
15013498266Sopenharmony_ci - send emails
15113498266Sopenharmony_ci - mail from support
15213498266Sopenharmony_ci - mail size support
15313498266Sopenharmony_ci - mail auth support for trusted server-to-server relaying
15413498266Sopenharmony_ci - multiple recipients
15513498266Sopenharmony_ci - via http-proxy
15613498266Sopenharmony_ci
15713498266Sopenharmony_ci## SMTPS (1)
15813498266Sopenharmony_ci
15913498266Sopenharmony_ci - implicit `smtps://` support
16013498266Sopenharmony_ci - explicit "STARTTLS" usage to "upgrade" plain `smtp://` connections to use SSL
16113498266Sopenharmony_ci - via http-proxy
16213498266Sopenharmony_ci
16313498266Sopenharmony_ci## POP3
16413498266Sopenharmony_ci
16513498266Sopenharmony_ci - authentication: Clear Text, APOP and SASL
16613498266Sopenharmony_ci - SASL based authentication: Plain, Login, CRAM-MD5, Digest-MD5, NTLM (9),
16713498266Sopenharmony_ci   Kerberos 5 (4) and External.
16813498266Sopenharmony_ci - list emails
16913498266Sopenharmony_ci - retrieve emails
17013498266Sopenharmony_ci - enhanced command support for: CAPA, DELE, TOP, STAT, UIDL and NOOP via
17113498266Sopenharmony_ci   custom requests
17213498266Sopenharmony_ci - via http-proxy
17313498266Sopenharmony_ci
17413498266Sopenharmony_ci## POP3S (1)
17513498266Sopenharmony_ci
17613498266Sopenharmony_ci - implicit `pop3s://` support
17713498266Sopenharmony_ci - explicit `STLS` usage to "upgrade" plain `pop3://` connections to use SSL
17813498266Sopenharmony_ci - via http-proxy
17913498266Sopenharmony_ci
18013498266Sopenharmony_ci## IMAP
18113498266Sopenharmony_ci
18213498266Sopenharmony_ci - authentication: Clear Text and SASL
18313498266Sopenharmony_ci - SASL based authentication: Plain, Login, CRAM-MD5, Digest-MD5, NTLM (9),
18413498266Sopenharmony_ci   Kerberos 5 (4) and External.
18513498266Sopenharmony_ci - list the folders of a mailbox
18613498266Sopenharmony_ci - select a mailbox with support for verifying the `UIDVALIDITY`
18713498266Sopenharmony_ci - fetch emails with support for specifying the UID and SECTION
18813498266Sopenharmony_ci - upload emails via the append command
18913498266Sopenharmony_ci - enhanced command support for: EXAMINE, CREATE, DELETE, RENAME, STATUS,
19013498266Sopenharmony_ci   STORE, COPY and UID via custom requests
19113498266Sopenharmony_ci - via http-proxy
19213498266Sopenharmony_ci
19313498266Sopenharmony_ci## IMAPS (1)
19413498266Sopenharmony_ci
19513498266Sopenharmony_ci - implicit `imaps://` support
19613498266Sopenharmony_ci - explicit "STARTTLS" usage to "upgrade" plain `imap://` connections to use SSL
19713498266Sopenharmony_ci - via http-proxy
19813498266Sopenharmony_ci
19913498266Sopenharmony_ci## MQTT
20013498266Sopenharmony_ci
20113498266Sopenharmony_ci - Subscribe to and publish topics using URL scheme `mqtt://broker/topic`
20213498266Sopenharmony_ci
20313498266Sopenharmony_ci## Footnotes
20413498266Sopenharmony_ci
20513498266Sopenharmony_ci  1. requires a TLS library
20613498266Sopenharmony_ci  2. requires OpenLDAP or WinLDAP
20713498266Sopenharmony_ci  3. requires a GSS-API implementation (such as Heimdal or MIT Kerberos) or
20813498266Sopenharmony_ci     SSPI (native Windows)
20913498266Sopenharmony_ci  4. requires a GSS-API implementation, however, only Windows SSPI is
21013498266Sopenharmony_ci     currently supported
21113498266Sopenharmony_ci  5. requires nghttp2
21213498266Sopenharmony_ci  6. requires c-ares
21313498266Sopenharmony_ci  7. requires libssh2, libssh or wolfSSH
21413498266Sopenharmony_ci  8. requires libssh2 or libssh
21513498266Sopenharmony_ci  9. requires OpenSSL, GnuTLS, mbedTLS, Secure Transport or SSPI
21613498266Sopenharmony_ci     (native Windows)
21713498266Sopenharmony_ci  10. requires libidn2 or Windows
21813498266Sopenharmony_ci  11. requires libz, brotli and/or zstd
21913498266Sopenharmony_ci  12. requires a GSS-API implementation (such as Heimdal or MIT Kerberos)
220