cURL – command line tool and library for transferring data with URLs

The cURL project produces two products: The first is libcurl, a free and easy-to-use client-side URL transfer library, supporting DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET and TFTP. The second product is curl, a command line tool for getting or sending files using URL syntax.

curl features include:

  • 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.

libcurl features include:

  • Full URL syntax with no length limit.
  • Custom maximum download time.
  • Custom least download speed acceptable.
  • Custom output result after completion.
  • Guesses protocol from host name unless specified.
  • Uses .netrc.
  • Progress bar with time statistics while downloading.
  • “Standard” proxy environment variables support.
  • Selectable network interface for outgoing traffic.
  • IPv6 support.
  • Persistent connections.
  • socks5 support.
  • 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.
  • Both a push and a pull style interface.
  • International domain names.

Support: GitHub
Developer: Daniel Stenberg
License: MIT/X derivate license


curl is written in C. Learn C with our recommended free books and free tutorials.

Return to Pick of the Bunch: Console Applications Home Page

Read our complete collection of recommended free and open source software. The collection covers all categories of software.
Share this article

Share your Thoughts

This site uses Akismet to reduce spam. Learn how your comment data is processed.