This module provides a tight and complete integration with the libcurl library.
Libcurl provides a complete set of RFC Internet protocol clients and allows a Falcon program to download remote files through simple commands.
The curl Falcon module is structured in a way that allows to handle multiple downloads in a single thread, and even in a simple coroutine, simplifying by orders of magnitude the complexity of sophisticated client programs.
Currently the curl module presents a minimal interface to the underlying libCURL. The library is actually served through Falcon-wise objects and structures. Some of the most advanced features in the library are still not bound, but you'll find everything you need to upload or download files, send POST http requests, get transfer information and basically manage multiplexed transfers.
More advance binding is scheduled for the next version of this library, that will take advantage of a new binding engine in Falcon 0.9.8.
Since the names of the classes that are declared in this module are short and simple, it is advisable to use the import directive to store the module in its own namespace. For example:
import from curl h = curl.Handle()
The library wrapped by this module, libcurl, uses various sets of define directives to specify parameters and configure connection values.
To reduce the complexity of this module, each set of enumerations is stored in a different Falcon enumerative class. For example, all the options starting with "CURLOPT_" are stored in the OPT enumeration. The option that sets the overall operation timeout for a given curl handle can be set through the OPT.TIMEOUT option (which corresponds to the CURLOPT_TIMEOUT define in the original C API of libcurl).