curl - A command line tool and library for transferring data with URL syntax, supporting HTTP, HTTPS, FTP, FTPS, GOPHER, TFTP, SCP, SFTP, SMB, TELNET, DICT, LDAP, LDAPS, FILE, IMAP, SMTP, POP3, RTSP and RTMP

  •        212

curl is used in command lines or scripts to transfer data. It is also used in cars, television sets, routers, printers, audio equipment, mobile phones, tablets, settop boxes, media players and is the internet transfer backbone for thousands of software applications affecting billions of humans daily.

It supports DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, Telnet and TFTP. curl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, proxies, HTTP/2, cookies, user+password authentication (Basic, Plain, Digest, CRAM-MD5, NTLM, Negotiate and Kerberos), file transfer resume, proxy tunneling and more.



Related Projects


  •    C

Curl is a tool and libcurl is a library for transferring data with URL syntax, supporting FTP, FTPS, HTTP, HTTPS, GOPHER, TFTP, SCP, SFTP, TELNET, DICT, LDAP, LDAPS, FILE, IMAP, SMTP, POP3, RTSP and RTMP. libcurl offers a myriad of powerful features

emacs-request - Request.el -- Easy HTTP request for Emacs Lisp

  •    Emacs

Request.el is a HTTP request library with multiple backends. It supports url.el which is shipped with Emacs and curl command line program. User can use curl when s/he has it, as curl is more reliable than url.el. Library author can use request.el to avoid imposing external dependencies such as curl to users while giving richer experience for users who have curl. As request.el is implemented in extensible manner, it is possible to implement other backend such as wget. Also, if future version of Emacs support linking with libcurl, it is possible to implement a backend using it. Libraries using request.el automatically can use these backend without modifying their code.

cURL in Ch


The Ch cURL package is a Ch interface to the cURL C library. Ch cURL enables all functions in the cURL library to run in Ch interpretively without compilation. It is ideal for new programmers requiring FTP/FTPS/HTTP/HTTPS/GOPHER/TELNET/DICT/FILE/LDAP.

everything-curl - The book documenting the curl project, the curl tool, libcurl and everything related to this

  •    Perl

Everything curl is an extensive guide to everything there is to know about curl, the project, the command-line tool, the library, how everything started and how it came to be what it is today. How we work on developing it further, what it takes to use it, how you can contribute with code and bug reports and why all those millions of existing users use it. This book is meant to be interesting and useful to both casual readers and the somewhat more experienced developers, and offers something for you all to pick and choose from. Don't read it from front to back. Read the chapters you are curious about and go back and forth as you see fit.

HTTPie - a CLI, cURL-like tool for humans

  •    Python

HTTPie (pronounced aitch-tee-tee-pie) is a command line HTTP client. Its goal is to make CLI interaction with web services as human-friendly as possible. It provides a simple http command that allows for sending arbitrary HTTP requests using a simple and natural syntax, and displays colorized output. HTTPie can be used for testing, debugging, and generally interacting with HTTP servers.

curl-easy - cURL wrapper for PHP

  •    PHP

This is small but powerful and robust library which speeds the things up. If you are tired of using PHP cURL extension with its procedural interface, but you want also keep control about script execution - it's great choice for you! If you need high speed crawling in your project, you might be interested in stil/curl-easy extension - stil/curl-robot. In order to use cURL-PHP library you need to install the » libcurl package.

wuzz - Interactive cli tool for HTTP inspection

  •    Go

Wuzz command line arguments are similar to cURL's arguments, so it can be used to inspect/modify requests copied from the browser's network inspector with the "copy as cURL" feature.Note: golang >= 1.7 required.

grpcurl - Like cURL, but for gRPC: Command-line tool for interacting with gRPC servers

  •    Go

grpcurl is a command-line tool that lets you interact with gRPC servers. It's basically curl for gRPC servers. The main purpose for this tool is to invoke RPC methods on a gRPC server from the command-line. gRPC servers use a binary encoding on the wire (protocol buffers, or "protobufs" for short). So they are basically impossible to interact with using regular curl (and older versions of curl that do not support HTTP/2 are of course non-starters). This program accepts messages using JSON encoding, which is much more friendly for both humans and scripts.

go-curl - golang curl(libcurl) binding.

  •    Go

my golang libcurl(curl) binding. go-curl is licensed under the Apache License, Version 2.0 (

curlcpp - An object oriented C++ wrapper for CURL (libcurl)

  •    C++

Note: cURL >= 7.34 is required. Then add <curlcpp root>/build/src/ to your library path and <curlcpp root>/include/ to your include path.

Requests - Requests for PHP is a humble HTTP request library

  •    PHP

Requests is a HTTP library written in PHP, for human beings. It is roughly based on the API from the excellent Requests Python library. Requests is ISC Licensed (similar to the new BSD license) and has no dependencies, except for PHP 5.2+. Despite PHP's use as a language for the web, its tools for sending HTTP requests are severely lacking. cURL has an interesting API, to say the least, and you can't always rely on it being available. Sockets provide only low level access, and require you to build most of the HTTP response parsing yourself.

Curl Data Kit


Curl Data Kit - a Curl Open Source project The CDK library facilitates datacentric application development in Curl. It includes support for client side SQLite databases and support for AMF servers like BlazeDS and WebORB

php-multi-curl - A high performance PHP library for using multi curl for parallel http calls.

  •    PHP

You can use composer to install this library from the command line. Basic usage can be done using the addUrl($url/*, $options*/) method. This calls GET $url by passing in $options as the parameters.

curl-rust - Rust bindings to libcurl

  •    Rust

The put and post methods on Easy can configure the method of the HTTP request, and then read_function can be used to specify how data is filled in. This interface works particularly well with types that implement Read. The handle can be re-used across multiple requests. Curl will attempt to keep the connections alive.

php-restclient - A generic REST API client for PHP

  •    PHP

headers - An associative array of HTTP headers and values to be included in every request. parameters - An associative array of URL or body parameters to be included in every request. curl_options - cURL options to apply to every request; anything defined here: These will override any automatically generated values. build_indexed_queries (bool) - http_build_query automatically adds an array index to repeated parameters which is not desirable on most systems. Use this option to enable the default behavior. Defaults to FALSE. user_agent - User agent string to use in requests. base_url - URL to use for the base of each request. format - Format string is appended to resource on request (extension), and used to determine which decoder to use on response; a request URL like "" would be expected to return well-formed JSON. format_regex - Pattern to extract format from response Content-Type header, used to determine which decoder to use on response. decoders - Associative array of format decoders. See "Direct Iteration and Response Decoding". username - Username to use for HTTP basic authentication. Requires password. password - Password to use for HTTP basic authentication. Requires username. url (string) - URL of the resource you are requesting. Will be prepended with the value of the base_url option, if it has been configured. Will be appended with the value of the format option, if it has been configured.


  •    PHP

HTTP client library written in PHP. Curly simplifies performing parallel HTTP requests by adding object oriented layer on the PHPs built-in solutions like cURL and streams.

httpstat - curl statistics made simple

  •    Python

httpstat visualizes curl(1) statistics in a way of beauty and clarity. It is a single file🌟 Python script that has no dependency👏 and is compatible with Python 3🍻.

HTTPie - cURL for humans

  •    Python

HTTPie is a CLI HTTP utility. Its goal is to make CLI interaction with HTTP-based services as human-friendly as possible. It does so by providing an http command that allows for issuing arbitrary HTTP requests using a simple and natural syntax and displaying colorized responses.

curl-to-go - Convert curl commands to Go code in your browser

  •    Javascript

curl-to-Go is a tool to instantly convert curl commands to Go code in the browser. It does not guarantee high-fidelity conversions, but it's good enough for most API docs that have curl samples.This is a sister tool to JSON-to-Go, which converts JSON to a Go struct type definition. To do the reverse, check out moul/http2curl.

cpr - C++ Requests: Curl for People, a spiritual port of Python Requests

  •    C++

C++ Requests is a simple wrapper around libcurl inspired by the excellent Python Requests project. Despite its name, libcurl's easy interface is anything but, and making mistakes misusing it is a common source of error and frustration. Using the more expressive language facilities of C++11, this library captures the essence of making network calls into a few concise idioms.

We have large collection of open source products. Follow the tags from Tag Cloud >>

Open source products are scattered around the web. Please provide information about the open source projects you own / you use. Add Projects.