FEATURES 6.0 KB

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