curl-curl/docs/RUSTLS.md
Daniel McCarney 14761d8b61
docs: rework RUSTLS install instructions
Describes using a package manager or pre-built binaries and adopts the
0.15 installation from source instructions.

Previously the rustls docs described installing rustls-ffi from source
using the GNU Makefile. The upstream project has switched to using
cargo-c as a cross-platform solution that works well with the rust
toolchain, pkg-config, and Windows and so this needs an update.

Similarly, for folks that want to avoid the extra cargo-c tool
requirement, rustls-ffi provides binary releases for common platforms,
and some Linux distributions/package managers offer pre-built packages.

The install instructions are expanded to cover these options since
they're generally better for end users than building the dep. from
source (no `rustc` required).
2025-03-27 08:47:43 +01:00

2.9 KiB

Rustls

Rustls is a TLS backend written in Rust. curl can be built to use it as an alternative to OpenSSL or other TLS backends. We use the rustls-ffi C bindings. This version of curl is compatible with rustls-ffi v0.15.x.

Getting rustls-ffi

To build curl with rustls support you need to have rustls-ffi available first. There are three options for this:

  1. Install it from your package manager, if available.
  2. Download pre-built binaries.
  3. Build it from source.

Installing rustls-ffi from a package manager

See the rustls-ffi README for packaging status. Availability and details for installation differ between distributions.

Once installed, build curl using --with-rustls.

% git clone https://github.com/curl/curl
% cd curl
% autoreconf -fi
% ./configure --with-rustls
% make

Downloading pre-built rustls-ffi binaries

Pre-built binaries are available on the releases page on GitHub for releases since 0.15.0. Download the appropriate archive for your platform and extract it to a directory of your choice (e.g. ${HOME}/rustls-ffi-built).

Once downloaded, build curl using --with-rustls and the path to the extracted binaries.

% git clone https://github.com/curl/curl
% cd curl
% autoreconf -fi
% ./configure --with-rustls=${HOME}/rustls-ffi-built
% make

Building rustls-ffi from source

Building rustls-ffi from source requires both a rust compiler, and the cargo-c cargo plugin.

To install a Rust compiler, use rustup or your package manager to install the 1.73+ or newer toolchain.

To install cargo-c, use your package manager, download a pre-built archive, or build it from source with cargo install cargo-c.

Next, check out, build, and install the appropriate version of rustls-ffi using cargo:

% git clone https://github.com/rustls/rustls-ffi -b v0.15.0
% cd rustls-ffi
% cargo capi install --release --prefix=${HOME}/rustls-ffi-built

Now configure and build curl using --with-rustls:

% git clone https://github.com/curl/curl
% cd curl
% autoreconf -fi
% ./configure --with-rustls=${HOME}/rustls-ffi-built
% make

See the rustls-ffi README for more information on cryptography providers and their build/platform requirements.