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