LibcURL

libcURL is a multi-platform C library that simplifies client-side URL transfers. It is basically the library version of cURL that supports a number of protocols including DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet and TFTP. Amongst standard functions it supports there are SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, proxies, cookies, user+password authentication (Basic, Digest, NTLM, Negotiate, Kerberos), file transfer resume, http proxy tunneling and so on.

Unusually enough the project provides bindings for a number of other languages and toolkits including Ada95, Basic, C, C++, Ch, Cocoa, D, Dylan, Eiffel, Euphoria, Falcon, Ferite, Gambas, glib/GTK+, Guile, Haskell, ILE/RPG, Java, Lisp, Lua, Mono, .NET, node.js, Object-Pascal (Delphi), OCaml, Pascal, Perl, PHP, PostgreSQL, Python, R, Rexx (As REXX/CURL), Ruby, Scheme, S-Lang, Smalltalk, SP-Forth, SPL, Tcl, Visual Basic, Visual FoxPro, Q, wxWidgets and XBLite.

It should be noted though that the existence of a binding for a language or tool does not automatically mean that you can use it as is, you preferred version of the tool may need some massaging before working as expected.

Version

 * 7.4.0
 * 7.36.0 (2013-03-27) - Paul Smedley (OS/2 port)
 * 7.64.1 (2019-03-27)
 * 7.65.1 (2019-06-05)

Links

 * libcURL project homepage
 * curlhs - Haskell interface for libcURL - Released under the ISC License