HTTP

curl – command-line data transfer tool and library

curl is a command-line tool for transferring data to and from servers using URLs. It supports a wide range of protocols, allowing users to download files, upload content, interact with web services and exchange data with remote systems.

The project also develops libcurl, a client-side transfer library used by other applications. Together, curl and libcurl provide a comprehensive set of network capabilities covering HTTP requests, secure connections, authentication, proxies and automated data transfers.

curl is particularly useful for API development, system administration, scripting and troubleshooting network services. It can construct detailed requests, control how connections are established and report information about the resulting transfers.

The command-line utility and library share the same underlying transfer functionality, but serve different purposes. curl provides an interactive and scriptable interface, while libcurl allows applications to integrate network transfers directly.

This is free and open source software.

Key Features

  • Supports HTTP, HTTPS, FTP, FTPS, SFTP, SCP, SMTP, IMAP, POP3 and numerous other protocols.
  • Supports WebSocket connections and MQTT messaging.
  • Provides HTTP/1.1, HTTP/2 and HTTP/3 support where available.
  • Supports GET, POST, PUT, PATCH, DELETE and custom HTTP methods.
  • Handles multipart forms, file uploads and JSON request bodies.
  • Supports HTTP Basic, Digest, NTLM and Negotiate authentication.
  • Provides TLS certificate verification and client certificate authentication.
  • Supports HTTP, HTTPS and SOCKS proxies.
  • Offers parallel transfers and persistent connection reuse.
  • Supports cookies, redirects and resumable downloads.
  • Provides configurable connection timeouts and transfer speed limits.
  • Supports DNS-over-HTTPS and IPv6.
  • Offers detailed transfer statistics, tracing and debugging output.
  • Provides URL globbing and configuration file support.
  • Includes libcurl for integrating network transfers into other applications.
  • Supports asynchronous and non-blocking transfer operations through libcurl.
  • Cross-platform support – runs on Linux, macOS, and Windows.

Website: github.com/curl/curl
Support:
Developer: Daniel Stenberg and contributors
License: curl License

cURL

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


Related Software

Alternatives to curl
Wget2Successor of Wget
WgetMakes retrieving large files or mirroring entire web or FTP sites easy
aria2Multi-protocol and multi-source command-line download utility
HTTPieHTTP client with an intuitive user interface
curlieThe power of curl, the ease of use of httpie
xhFast and friendly tool for sending HTTP requests
hurlRun and test HTTP requests with plain text
TerminusDMUser-friendly terminal interface for managing your downloads efficiently
getpartyHTTP download manager with multi-parts
RestishCLI for interacting with REST-ish HTTP APIs
PostingTerminal-based HTTP client for developing and testing APIs
SlumberTerminal-based HTTP client
Alternatives to Wget
Wget2Successor of Wget
curlTool and library for transferring data with URLs
aria2Multi-protocol and multi-source command-line download utility
HTTPieHTTP client with an intuitive user interface
curlieThe power of curl, the ease of use of httpie
xhFast and friendly tool for sending HTTP requests
hurlRun and test HTTP requests with plain text
TerminusDMUser-friendly terminal interface for managing your downloads efficiently
getpartyHTTP download manager with multi-parts
SurgeDownload manager built in Go
aria2tuiTUI client for the aria2c download utility
gosh-dl-cliModern command-line download manager built on top of the gosh-dl engine
AxelLightweight CLI download accelerator
Command line HTTP clients
HTTPieCommand line interface, cURL-like tool for humans
aria2Multi-protocol and multi-source command-line download utility
Wget2Successor of Wget
PostingTerminal-based HTTP client for developing and testing APIs
hurlRun and test HTTP requests with plain text
curlCommand line tool for transferring data with URL syntax. Transfer library too
axelCommand-line download accelerator
xhFast and friendly tool for sending HTTP requests
WgetRetrieves content from web servers
RestishCLI for interacting with REST-ish HTTP APIs
curlieThe power of curl, the ease of use of httpie
SlumberTerminal-based HTTP client
TerminusDMUser-friendly terminal interface for managing your downloads efficiently.
getpartyHTTP download manager with multi-parts

Read our verdict in the software roundup.


Best Free and Open Source Software LinuxLinks helps you discover the best free and open source software for Linux. Explore our extensive collection of recommended applications, including alternatives to popular proprietary software.

We also publish software reviews, Linux tutorials, hardware reviews, free programming books and articles covering the wider open source community. Browse our Linux resources to discover more.

Know a useful free and open source Linux application we haven't covered? Suggest a program for inclusion.

Has your software been featured on LinuxLinks? Display one of our Featured on LinuxLinks badges on your website or GitHub README.
Subscribe

Please read our Comment Policy before commenting.

Notify of
guest
0 Comments
Oldest
Newest Most Voted