--- /dev/null
+# Rustls
+
+[Rustls is a TLS backend written in Rust.](https://docs.rs/rustls/). Curl can
+be built to use it as an alternative to OpenSSL or other TLS backends. We use
+the [crustls C bindings](https://github.com/abetterinternet/crustls/). This
+version of curl depends on version v0.4.0 of crustls.
+
+# Building with rustls
+
+First, [install Rust](https://rustup.rs/).
+
+Next, check out, build, and install the appropriate version of crustls:
+
+ % cargo install cbindgen
+ % git clone https://github.com/abetterinternet/crustls/ -b v0.4.0
+ % cd crustls
+ % make
+ % make DESTDIR=${HOME}/crustls-built/ install
+
+Now configure and build curl with rustls:
+
+ % git clone https://github.com/curl/curl
+ % cd curl
+ % ./buildconf
+ % ./configure --without-ssl --with-rustls=${HOME}/crustls-built
+ % make
ln -vnf $(find target/release -name libcrypto.a -o -name libssl.a) deps/boringssl/src/lib/
fi
-if [ "$TRAVIS_OS_NAME" = linux -a "$RUSTLS" ]; then
+if [ "$TRAVIS_OS_NAME" = linux -a "$RUSTLS_VERSION" ]; then
cd $HOME
- git clone --depth=1 --recursive https://github.com/abetterinternet/crustls.git
+ git clone --depth=1 --recursive https://github.com/abetterinternet/crustls.git -b "$RUSTLS_VERSION"
curl https://sh.rustup.rs -sSf | sh -s -- -y
source $HOME/.cargo/env
cargo install cbindgen
make "TFLAGS=-n !313 !410 !3001" test-nonflaky
fi
+if [ "$T" = "debug-rustls" ]; then
+ ./configure --enable-debug --enable-werror $C
+ make
+ make "TFLAGS=HTTPS !313" test-nonflaky
+fi
+
if [ "$T" = "novalgrind" ]; then
./configure --enable-werror $C
make