[package] name = "rustls" version = "0.23.16" edition = "2021" rust-version = "1.63" license = "Apache-2.0 OR ISC OR MIT" readme = "../README.md" description = "Rustls is a modern TLS library written in Rust." homepage = "https://github.com/rustls/rustls" repository = "https://github.com/rustls/rustls" categories = ["network-programming", "cryptography"] autobenches = false autotests = false exclude = ["src/testdata", "tests/**"] build = "build.rs" [build-dependencies] rustversion = { version = "1.0.6", optional = true } [dependencies] aws-lc-rs = { version = "1.9", optional = true, default-features = false, features = ["aws-lc-sys", "prebuilt-nasm"] } brotli = { version = "7", optional = true, default-features = false, features = ["std"] } brotli-decompressor = { version = "4.0.1", optional = true } # 4.0.1 required for panic fix hashbrown = { version = "0.15", optional = true, default-features = false, features = ["default-hasher", "inline-more"] } log = { version = "0.4.8", optional = true } # remove once our MSRV is >= 1.70 once_cell = { version = "1.16", default-features = false, features = ["alloc", "race"] } ring = { version = "0.17", optional = true } subtle = { version = "2.5.0", default-features = false } webpki = { package = "rustls-webpki", version = "0.102.8", features = ["alloc"], default-features = false } pki-types = { package = "rustls-pki-types", version = "1.10", features = ["alloc"] } zeroize = "1.7" zlib-rs = { version = "0.3", optional = true } [features] default = ["aws_lc_rs", "logging", "std", "tls12"] std = ["webpki/std", "pki-types/std", "once_cell/std"] logging = ["log"] aws_lc_rs = ["dep:aws-lc-rs", "webpki/aws_lc_rs"] aws-lc-rs = ["aws_lc_rs"] # Alias because Cargo features commonly use `-` brotli = ["dep:brotli", "dep:brotli-decompressor", "std"] ring = ["dep:ring", "webpki/ring"] custom-provider = [] tls12 = [] read_buf = ["rustversion", "std"] fips = ["aws_lc_rs", "aws-lc-rs?/fips"] zlib = ["dep:zlib-rs"] [dev-dependencies] base64 = "0.22" bencher = "0.1.5" clap = { version = "4", features = ["derive", "env"] } env_logger = "0.10" # 0.11 requires 1.71 MSRV even as a dev-dep (due to manifest features) hex = "0.4" log = "0.4.8" num-bigint = "0.4.4" rcgen = { version = "0.13", default-features = false, features = ["aws_lc_rs", "pem"] } serde = { version = "1", features = ["derive"] } serde_json = "1" time = { version = "0.3.6", default-features = false } webpki-roots = "0.26" [target.'cfg(not(target_env = "msvc"))'.dev-dependencies] tikv-jemallocator = "0.6" [[example]] name = "bench" path = "examples/internal/bench.rs" [[bench]] name = "benchmarks" path = "benches/benchmarks.rs" harness = false required-features = ["ring"] [[example]] name = "test_ca" path = "examples/internal/test_ca.rs" [[test]] name = "api" path = "tests/runners/api.rs" [[test]] name = "api_ffdhe" path = "tests/runners/api_ffdhe.rs" required-features = ["tls12"] [[test]] name = "bogo" path = "tests/bogo.rs" [[test]] name = "client_cert_verifier" path = "tests/runners/client_cert_verifier.rs" [[test]] name = "ech" path = "tests/ech.rs" [[test]] name = "key_log_file_env" path = "tests/runners/key_log_file_env.rs" [[test]] name = "process_provider" path = "tests/process_provider.rs" [[test]] name = "server_cert_verifier" path = "tests/runners/server_cert_verifier.rs" [[test]] name = "unbuffered" path = "tests/runners/unbuffered.rs" [package.metadata.docs.rs] # all non-default features except fips (cannot build on docs.rs environment) features = ["read_buf", "ring"] rustdoc-args = ["--cfg", "docsrs"] [package.metadata.cargo_check_external_types] allowed_external_types = [ "rustls_pki_types", "rustls_pki_types::*", ]