Home | History | Annotate | Download | only in docs
      1                                   _   _ ____  _
      2                               ___| | | |  _ \| |
      3                              / __| | | | |_) | |
      4                             | (__| |_| |  _ <| |___
      5                              \___|\___/|_| \_\_____|
      6 
      7 FEATURES
      8 
      9 curl tool
     10  - config file support
     11  - multiple URLs in a single command line
     12  - range "globbing" support: [0-13], {one,two,three}
     13  - multiple file upload on a single command line
     14  - custom maximum transfer rate
     15  - redirectable stderr
     16  - metalink support (*13)
     17 
     18 libcurl
     19  - full URL syntax with no length limit
     20  - custom maximum download time
     21  - custom least download speed acceptable
     22  - custom output result after completion
     23  - guesses protocol from host name unless specified
     24  - uses .netrc
     25  - progress bar with time statistics while downloading
     26  - "standard" proxy environment variables support
     27  - compiles on win32 (reported builds on 40+ operating systems)
     28  - selectable network interface for outgoing traffic
     29  - IPv6 support on unix and Windows
     30  - persistent connections
     31  - socks 4 + 5 support, with or without local name resolving
     32  - supports user name and password in proxy environment variables
     33  - operations through proxy "tunnel" (using CONNECT)
     34  - support for large files (>2GB and >4GB) during upload and download
     35  - replaceable memory functions (malloc, free, realloc, etc)
     36  - asynchronous name resolving (*6)
     37  - both a push and a pull style interface
     38  - international domain names (*11)
     39 
     40 HTTP
     41  - HTTP/1.1 compliant (optionally uses 1.0)
     42  - GET
     43  - PUT
     44  - HEAD
     45  - POST
     46  - Pipelining
     47  - multipart formpost (RFC1867-style)
     48  - authentication: Basic, Digest, NTLM (*9) and Negotiate (SPNEGO) (*3)
     49    to server and proxy
     50  - resume (both GET and PUT)
     51  - follow redirects
     52  - maximum amount of redirects to follow
     53  - custom HTTP request
     54  - cookie get/send fully parsed
     55  - reads/writes the netscape cookie file format
     56  - custom headers (replace/remove internally generated headers)
     57  - custom user-agent string
     58  - custom referrer string
     59  - range
     60  - proxy authentication
     61  - time conditions
     62  - via http-proxy
     63  - retrieve file modification date
     64  - Content-Encoding support for deflate and gzip
     65  - "Transfer-Encoding: chunked" support in uploads
     66  - data compression (*12)
     67  - HTTP/2 (*5)
     68 
     69 HTTPS (*1)
     70  - (all the HTTP features)
     71  - using client certificates
     72  - verify server certificate
     73  - via http-proxy
     74  - select desired encryption
     75  - force usage of a specific SSL version (SSLv2 (*7), SSLv3 (*10) or TLSv1)
     76 
     77 FTP
     78  - download
     79  - authentication
     80  - Kerberos 5 (*14)
     81  - active/passive using PORT, EPRT, PASV or EPSV
     82  - single file size information (compare to HTTP HEAD)
     83  - 'type=' URL support
     84  - dir listing
     85  - dir listing names-only
     86  - upload
     87  - upload append
     88  - upload via http-proxy as HTTP PUT
     89  - download resume
     90  - upload resume
     91  - custom ftp commands (before and/or after the transfer)
     92  - simple "range" support
     93  - via http-proxy
     94  - all operations can be tunneled through a http-proxy
     95  - customizable to retrieve file modification date
     96  - no dir depth limit
     97 
     98 FTPS (*1)
     99  - implicit ftps:// support that use SSL on both connections
    100  - explicit "AUTH TLS" and "AUTH SSL" usage to "upgrade" plain ftp://
    101    connection to use SSL for both or one of the connections
    102 
    103 SCP (*8)
    104  - both password and public key auth
    105 
    106 SFTP (*8)
    107  - both password and public key auth
    108  - with custom commands sent before/after the transfer
    109 
    110 TFTP
    111  - download
    112  - upload
    113 
    114 TELNET
    115  - connection negotiation
    116  - custom telnet options
    117  - stdin/stdout I/O
    118 
    119 LDAP (*2)
    120  - full LDAP URL support
    121 
    122 DICT
    123  - extended DICT URL support
    124 
    125 FILE
    126  - URL support
    127  - upload
    128  - resume
    129 
    130 SMB
    131  - SMBv1 over TCP and SSL
    132  - download
    133  - upload
    134  - authentication with NTLMv1
    135 
    136 SMTP
    137  - authentication: Plain, Login, CRAM-MD5, Digest-MD5, NTLM (*9), Kerberos 5
    138    (*4) and External.
    139  - send e-mails
    140  - mail from support
    141  - mail size support
    142  - mail auth support for trusted server-to-server relaying
    143  - multiple recipients
    144  - via http-proxy
    145 
    146 SMTPS (*1)
    147  - implicit smtps:// support
    148  - explicit "STARTTLS" usage to "upgrade" plain smtp:// connections to use SSL
    149  - via http-proxy
    150 
    151 POP3
    152  - authentication: Clear Text, APOP and SASL
    153  - SASL based authentication: Plain, Login, CRAM-MD5, Digest-MD5, NTLM (*9),
    154    Kerberos 5 (*4) and External.
    155  - list e-mails
    156  - retrieve e-mails
    157  - enhanced command support for: CAPA, DELE, TOP, STAT, UIDL and NOOP via
    158    custom requests
    159  - via http-proxy
    160 
    161 POP3S (*1)
    162  - implicit pop3s:// support
    163  - explicit "STLS" usage to "upgrade" plain pop3:// connections to use SSL
    164  - via http-proxy
    165 
    166 IMAP
    167  - authentication: Clear Text and SASL
    168  - SASL based authentication: Plain, Login, CRAM-MD5, Digest-MD5, NTLM (*9),
    169    Kerberos 5 (*4) and External.
    170  - list the folders of a mailbox
    171  - select a mailbox with support for verifying the UIDVALIDITY
    172  - fetch e-mails with support for specifying the UID and SECTION
    173  - upload e-mails via the append command
    174  - enhanced command support for: EXAMINE, CREATE, DELETE, RENAME, STATUS,
    175    STORE, COPY and UID via custom requests
    176  - via http-proxy
    177 
    178 IMAPS (*1)
    179  - implicit imaps:// support
    180  - explicit "STARTTLS" usage to "upgrade" plain imap:// connections to use SSL
    181  - via http-proxy
    182 
    183 FOOTNOTES
    184 =========
    185 
    186   *1 = requires OpenSSL, GnuTLS, NSS, yassl, axTLS, PolarSSL, WinSSL (native
    187        Windows), Secure Transport (native iOS/OS X) or GSKit (native IBM i)
    188   *2 = requires OpenLDAP
    189   *3 = requires a GSS-API implementation (such as Heimdal or MIT Kerberos) or
    190        SSPI (native Windows)
    191   *4 = requires a GSS-API implementation, however, only Windows SSPI is
    192        currently supported
    193   *5 = requires nghttp2 and possibly a recent TLS library
    194   *6 = requires c-ares
    195   *7 = requires OpenSSL, NSS, GSKit, WinSSL or Secure Transport; GnuTLS, for
    196        example, only supports SSLv3 and TLSv1
    197   *8 = requires libssh2
    198   *9 = requires OpenSSL, GnuTLS, NSS, yassl, Secure Transport or SSPI (native
    199        Windows)
    200   *10 = requires any of the SSL libraries in (*1) above other than axTLS, which
    201         does not support SSLv3
    202   *11 = requires libidn or Windows
    203   *12 = requires libz
    204   *13 = requires libmetalink, and either an Apple or Microsoft operating
    205         system, or OpenSSL, or GnuTLS, or NSS
    206   *14 = requires a GSS-API implementation (such as Heimdal or MIT Kerberos)
    207