- _ _ ____ _
- ___| | | | _ \| |
- / __| | | | |_) | |
- | (__| |_| | _ <| |___
+ _ _ ____ _
+ ___| | | | _ \| |
+ / __| | | | |_) | |
+ | (__| |_| | _ <| |___
\___|\___/|_| \_\_____|
FEATURES
-Misc
- - full URL syntax
+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
+ - metalink support (*13)
+
+libcurl
+ - full URL syntax with no length limit
- custom maximum download time
- custom least download speed acceptable
- custom output result after completion
- - multiple URLs
- guesses protocol from host name unless specified
- uses .netrc
- - progress bar/time specs while downloading
+ - progress bar with time statistics while downloading
- "standard" proxy environment variables support
- - config file support
- - compiles on win32
- - redirectable stderr
- - use selected network interface for outgoing traffic
- - IPv6 support
- - persistant connections
+ - compiles on win32 (reported builds on 40+ operating systems)
+ - selectable network interface for outgoing traffic
+ - IPv6 support on unix and Windows
+ - persistent connections
+ - socks 4 + 5 support, with or without local name resolving
+ - supports user name and password in proxy environment variables
+ - operations through proxy "tunnel" (using CONNECT)
+ - support for large files (>2GB and >4GB) during upload and download
+ - replaceable memory functions (malloc, free, realloc, etc)
+ - asynchronous name resolving (*6)
+ - both a push and a pull style interface
+ - international domain names (*11)
HTTP
+ - HTTP/1.1 compliant (optionally uses 1.0)
- GET
- PUT
- HEAD
- POST
- - multipart POST
- - authentication
+ - Pipelining
+ - multipart formpost (RFC1867-style)
+ - authentication: Basic, Digest, NTLM (*9) and Negotiate (SPNEGO) (*3)
+ 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
- - understands the netscape cookie file format
- - custom headers (that can replace/remove internally generated headers)
+ - reads/writes the netscape cookie file format
+ - custom headers (replace/remove internally generated headers)
- custom user-agent string
- - custom referer string
+ - custom referrer string
- range
- proxy authentication
- time conditions
- via http-proxy
- retrieve file modification date
+ - Content-Encoding support for deflate and gzip
+ - "Transfer-Encoding: chunked" support in uploads
+ - data compression (*12)
+ - HTTP/2 (*5)
HTTPS (*1)
- (all the HTTP features)
- - using certificates
+ - using client certificates
- verify server certificate
- via http-proxy
+ - select desired encryption
+ - force usage of a specific SSL version (SSLv2 (*7), SSLv3 (*10) or TLSv1)
FTP
- download
- authentication
- - kerberos security
- - PORT or PASV
+ - Kerberos 5 (*14)
+ - active/passive using PORT, EPRT, PASV or EPSV
- single file size information (compare to HTTP HEAD)
- 'type=' URL support
- dir listing
- 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 TLS" 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
DICT
- extended DICT URL support
-GOPHER
- - GET
- - via http-proxy
-
FILE
- URL support
+ - upload
+ - resume
+
+SMB
+ - SMBv1 over TCP and SSL
+ - download
+ - upload
+ - authentication with NTLMv1
+
+SMTP
+ - authentication: Plain, Login, CRAM-MD5, Digest-MD5, NTLM (*9) and Kerberos 5
+ (*4)
+ - send e-mails
+ - mail from support
+ - mail size support
+ - mail auth support for trusted server-to-server relaying
+ - multiple recipients
+ - via http-proxy
+
+SMTPS (*1)
+ - implicit smtps:// support
+ - explicit "STARTTLS" usage to "upgrade" plain smtp:// connections to use SSL
+ - via http-proxy
+
+POP3
+ - authentication: Clear Text, APOP and SASL
+ - SASL based authentication: Plain, Login, CRAM-MD5, Digest-MD5, NTLM (*9) and
+ Kerberos 5 (*4)
+ - list e-mails
+ - retrieve e-mails
+ - enhanced command support for: CAPA, DELE, TOP, STAT, UIDL and NOOP via
+ custom requests
+ - via http-proxy
+
+POP3S (*1)
+ - implicit pop3s:// support
+ - explicit "STLS" usage to "upgrade" plain pop3:// connections to use SSL
+ - via http-proxy
+
+IMAP
+ - authentication: Clear Text and SASL
+ - SASL based authentication: Plain, Login, CRAM-MD5, Digest-MD5, NTLM (*9) and
+ Kerberos 5 (*4)
+ - list the folders of a mailbox
+ - select a mailbox with support for verifying the UIDVALIDITY
+ - fetch e-mails with support for specifying the UID and SECTION
+ - upload e-mails via the append command
+ - enhanced command support for: EXAMINE, CREATE, DELETE, RENAME, STATUS,
+ STORE, COPY and UID via custom requests
+ - via http-proxy
+
+IMAPS (*1)
+ - implicit imaps:// support
+ - explicit "STARTTLS" usage to "upgrade" plain imap:// connections to use SSL
+ - via http-proxy
+
+FOOTNOTES
+=========
- *1 = requires OpenSSL
- *2 = requires OpenLDAP
+ *1 = requires OpenSSL, GnuTLS, NSS, yassl, axTLS, PolarSSL, WinSSL (native
+ Windows), Secure Transport (native iOS/OS X) or GSKit (native IBM i)
+ *2 = requires OpenLDAP
+ *3 = requires a GSS-API implementation (such as Heimdal or MIT Kerberos) or
+ SSPI (native Windows)
+ *4 = requires a GSS-API implementation, however, only Windows SSPI is
+ currently supported
+ *5 = requires nghttp2 and possibly a recent TLS library
+ *6 = requires c-ares
+ *7 = requires OpenSSL, NSS, GSKit, WinSSL or Secure Transport; GnuTLS, for
+ example, only supports SSLv3 and TLSv1
+ *8 = requires libssh2
+ *9 = requires OpenSSL, GnuTLS, NSS, yassl, Secure Transport or SSPI (native
+ Windows)
+ *10 = requires any of the SSL libraries in (*1) above other than axTLS, which
+ does not support SSLv3
+ *11 = requires libidn or Windows
+ *12 = requires libz
+ *13 = requires libmetalink, and either an Apple or Microsoft operating
+ system, or OpenSSL, or GnuTLS, or NSS
+ *14 = requires a GSS-API implementation (such as Heimdal or MIT Kerberos)