cURL is an open source and freely distributed software project, a command-line utility that help you easily transfer any type of data using a URL syntax. It supports a wide-range or file transfer protocols and can be integrated into various applications.
Supports numerous file transfer protocols
At the moment, cURL comes with support for numerous file transfer protocols, including HTTP, HTTPS, FTP, FTPS, SFTP, DICT, TELNET, TFTP, LDAP, LDAPS, FILE, IMAP, IMAPS, POP3, POP3S, RTMP, RTSP, SCP, SMTP, SMTPS, as well as GOPHER.
Supports user and password authentication
cURL also supports HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, proxies, file transfer resume, HTTP proxy tunneling, cookies, as well as user and password authentication, including Basic, Digest, NTLM, Negotiate, and Kerberos.
Includes the libcurl library
In addition to cURL, the project also includes the libcurl library, which provides developers with a fast, thread-safe and IPv6 compatible library that be integrated into any application written in one of the supported programming languages, including C, C++, Python, Java or PHP.
libcurl’s features
Among the features of the libcurl library, we can mention support for SSL and TLS through GnuTLS, OpenSSL, CyaSSL, PolarSSL, QSOSSL, axTLS or NSS, Secure Transport and SChannel.
It’s a command-line application written in C
Both cURL and libcurl projects have been written in the C programming language, which means that they are cross-platform, running successfully on mainstream operating systems. Both 32-bit and 64-bit architectures are supported at this time.
Supports a wide-range of operating systems
cURL has been designed with portability in mind, which means that it supports a wide-range of operating systems, including GNU/Linux, Microsoft Windows, BSD, Solaris, Darwin, HP UX, AIX, IRIX, Tru64, Unix Ware, Symbian, Amiga OS, IMB OS/2, HURD, BeOS, iOS, Android, QNX Neutrino, Ultrix, BlackBerry, OpenVMS, RISC OS, DOS, Novell NetWare and Mac OS X.