libcurl bindings for Rust
// Print a web page onto stdout
// Capture output into a local `Vec`.
Post / Put requests
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
Custom headers can be specified as part of the request:
The handle can be re-used across multiple requests. Curl will attempt to keep the connections alive.
The libcurl library provides support for sending multiple requests
simultaneously through the "multi" interface. This is currently bound in the
multi module of this crate and provides the ability to execute multiple
transfers simultaneously. For more information, see that module.
By default, this crate will attempt to dynamically link to the system-wide libcurl and the system-wide SSL library. Some of this behavior can be customized with various Cargo features:
rustlsEnable SSL/TLS support via Rustls, a well-received alternative TLS backend written in Rust. Rustls is always statically linked. Disabled by default.
Note that Rustls support is experimental within Curl itself and may have significant bugs, so we don't offer any sort of stability guarantee with this feature.
http2: Enable HTTP/2 support via libnghttp2. Disabled by default.
static-curl: Use a bundled libcurl version and statically link to it. Disabled by default.
static-ssl: Use a bundled OpenSSL version and statically link to it. Only applies on platforms that use OpenSSL. Disabled by default.
spnego: Enable SPNEGO support. Disabled by default.
upkeep_7_62_0: Enable curl_easy_upkeep() support, introduced in curl 7.62.0. Disabled by default.
poll_7_68_0: Enable curl_multi_poll()/curl_multi_wakeup() support, requires curl 7.68.0 or later. Disabled by default.
ntlm: Enable NTLM support in curl. Disabled by default.
windows-static-ssl: Enable Openssl support on Windows via the static build provided by vcpkg. Incompatible with
--no-default-features). Disabled by default.
Note that to install openssl on windows via vcpkg the following commands needs to be ran:
git clone https://github.com/microsoft/vcpkg cd vcpkg ./bootstrap-vcpkg.bat -disableMetrics ./vcpkg.exe integrate install ./vcpkg.exe install openssl:x64-windows-static-md
The bindings have been developed using curl version 7.24.0. They should work with any newer version of curl and possibly with older versions, but this has not been tested.
Curl built against the NSS SSL library
If you encounter the following error message:
 Problem with the SSL CA cert (path? access rights?)
That means most likely, that curl was linked against
libcurl-nss.so due to
installed libcurl NSS development files, and that the required library
libnsspem.so is missing. See also the curl man page: "If curl is built
against the NSS SSL library, the NSS PEM PKCS#11 module (
libnsspem.so) needs to be available for this option to work properly."
In order to avoid this failure you can either
- install the missing library (e.g. Debian:
- remove the libcurl NSS development files (e.g. Debian:
libcurl4-nss-dev) and rebuild curl-rust.
curl-rust crate is licensed under the MIT license, see
LICENSE for more