Cargo Features

[dependencies]
ureq = { version = "3.0.0-rc5", default-features = false, features = ["rustls", "native-tls", "platform-verifier", "socks-proxy", "cookies", "gzip", "brotli", "charset", "json", "rustls-no-provider", "vendored"] }
default = gzip, json, rustls

These default features are set whenever ureq is added without default-features = false somewhere in the dependency tree.

rustls default rustls = rustls-no-provider

SUPPORTED FEATURES

Enables ring of optional rustls

Enable aws-lc-rs for tests so we can demonstrate using ureq without compiling ring.

native-tls = _tls

Enables der, native-tls, and webpki-root-certs

platform-verifier

Enables rustls-platform-verifier ^0.3.4

rustls-platform-verifier held back due to 0.4.0 causing a double depedendency on windows-sys (0.59.0, 0.52.0) and security-framework (2.11.1, 3.1.0)

socks-proxy

Enables socks

cookies

Enables cookie_store

cookie_store uses Url, while http-crate has its own Uri.
Keep url crate in lockstep with cookie_store.

and url

ureq-proto forces url=2.5.4. This optional dep documents the situation in cookie_store.

gzip default

Enables flate2

brotli

Enables brotli-decompressor

charset

Enables encoding_rs

json default

Enables serde and serde_json, serde_json of optional cookie_store

rustls-no-provider rustls = _tls

UNSTABLE FEATURES.
Might be removed or changed in a minor version.

Rustls CryptoProviders are not picked up from feature flags alone. They must be configured on Agent. This feature flag makes it possible to compile ureq with rustls, but without ring.

Enables rustls and webpki-roots

vendored

Supported as long as native-tls supports this.

Enables vendored of optional native-tls

_test

Affects test::set_handler

_tls native-tls? rustls-no-provider?

Enables rustls-pemfile and rustls-pki-types

rustls-pemfile:

These are used regardless of TLS implementation.

Affects ureq::tls