Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 39 additions & 17 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,8 @@ jobs:
- features
- unstable
- nightly
- msrv
- msrv_default
- msrv_oldest
- android
- wasm
- docs
Expand Down Expand Up @@ -74,11 +75,9 @@ jobs:
- windows / stable-i686-gnu
- "feat.: default-tls disabled"
- "feat.: rustls-tls"
- "feat.: rustls-tls-manual-roots"
- "feat.: rustls-tls-native-roots"
- "feat.: rustls-tls-no-provider"
- "feat.: native-tls"
- "feat.: default-tls and rustls-tls"
- "feat.: default-tls and native-tls"
- "feat.: rustls-tls and rustls-tls-no-provider"
- "feat.: cookies"
- "feat.: blocking"
Expand All @@ -92,7 +91,7 @@ jobs:
- "feat.: multipart"
- "feat.: stream"
- "feat.: socks/default-tls"
- "feat.: socks/rustls-tls"
- "feat.: socks/native-tls"
- "feat.: hickory-dns"

include:
Expand Down Expand Up @@ -134,18 +133,14 @@ jobs:
features: "--no-default-features"
- name: "feat.: rustls-tls"
features: "--no-default-features --features rustls-tls"
- name: "feat.: rustls-tls-manual-roots"
features: "--no-default-features --features rustls-tls-manual-roots"
- name: "feat.: rustls-tls-native-roots"
features: "--no-default-features --features rustls-tls-native-roots"
- name: "feat.: rustls-tls-no-provider"
features: "--no-default-features --features rustls-tls-no-provider"
- name: "feat.: native-tls"
features: "--features native-tls"
- name: "feat.: rustls-tls and rustls-tls-no-provider"
features: "--features rustls-tls,rustls-tls-no-provider"
- name: "feat.: default-tls and rustls-tls"
features: "--features rustls-tls"
- name: "feat.: default-tls and native-tls"
features: "--features native-tls"
- name: "feat.: cookies"
features: "--features cookies"
- name: "feat.: blocking"
Expand All @@ -172,8 +167,8 @@ jobs:
features: "--features stream"
- name: "feat.: socks/default-tls"
features: "--features socks"
- name: "feat.: socks/rustls-tls"
features: "--features socks,rustls-tls"
- name: "feat.: socks/native-tls"
features: "--features socks,native-tls"
- name: "feat.: hickory-dns"
features: "--features hickory-dns"

Expand Down Expand Up @@ -241,7 +236,7 @@ jobs:
- uses: Swatinem/rust-cache@v2

- name: check --feature-powerset
run: cargo hack --no-dev-deps check --feature-powerset --depth 2 --skip http3,__tls,__rustls,__rustls-ring,__rustls-aws-lc-rs,native-tls-vendored,trust-dns
run: cargo hack --no-dev-deps check --feature-powerset --depth 2 --skip http3,__tls,__rustls,__rustls-aws-lc-rs,native-tls-vendored,trust-dns
env:
RUSTFLAGS: "-D dead_code -D unused_imports"

Expand Down Expand Up @@ -313,8 +308,35 @@ jobs:
cargo check
cargo check --all-features

msrv:
name: MSRV
msrv_default:
name: MSRV Default
needs: [style]

runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v5

- uses: dtolnay/rust-toolchain@stable
- name: Resolve MSRV aware dependencies
run: cargo update
env:
CARGO_RESOLVER_INCOMPATIBLE_RUST_VERSIONS: fallback

# required by rustls-platform-verifier
- name: Install rust (1.71.0)
uses: dtolnay/rust-toolchain@master
with:
toolchain: 1.71.0

- uses: Swatinem/rust-cache@v2

- name: Check
run: cargo check

msrv_oldest:
name: MSRV Oldest
needs: [style]

runs-on: ubuntu-latest
Expand All @@ -341,7 +363,7 @@ jobs:
- uses: Swatinem/rust-cache@v2

- name: Check
run: cargo check
run: cargo check --no-default-features --features="http2,charset,native-tls"

android:
name: Android
Expand Down
18 changes: 5 additions & 13 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -44,21 +44,13 @@ default-tls = ["rustls-tls"]

http2 = ["h2", "hyper/http2", "hyper-util/http2", "hyper-rustls?/http2"]

rustls-tls = ["rustls-tls-no-provider", "__rustls-aws-lc-rs"]
rustls-tls-no-provider = ["dep:rustls-platform-verifier", "__rustls"]

native-tls = ["dep:hyper-tls", "dep:native-tls-crate", "__tls", "dep:tokio-native-tls"]
native-tls-alpn = ["native-tls", "native-tls-crate?/alpn", "hyper-tls?/alpn"]
native-tls-vendored = ["native-tls", "native-tls-crate?/vendored"]

rustls-tls = ["rustls-tls-webpki-roots"]
rustls-tls-no-provider = ["rustls-tls-manual-roots-no-provider"]

rustls-tls-manual-roots-no-provider = ["__rustls"]
rustls-tls-webpki-roots-no-provider = ["dep:webpki-roots", "hyper-rustls?/webpki-tokio", "__rustls"]
rustls-tls-native-roots-no-provider = ["dep:rustls-native-certs", "hyper-rustls?/native-tokio", "__rustls"]

rustls-tls-manual-roots = ["rustls-tls-manual-roots-no-provider", "__rustls-aws-lc-rs"]
rustls-tls-webpki-roots = ["rustls-tls-webpki-roots-no-provider", "__rustls-aws-lc-rs"]
rustls-tls-native-roots = ["rustls-tls-native-roots-no-provider", "__rustls-aws-lc-rs"]

blocking = ["dep:futures-channel", "futures-channel?/sink", "dep:futures-util", "futures-util?/io", "futures-util?/sink", "tokio/sync"]

charset = ["dep:encoding_rs", "dep:mime"]
Expand Down Expand Up @@ -94,7 +86,7 @@ system-proxy = ["hyper-util/client-proxy-system"]
macos-system-configuration = ["system-proxy"]

# Experimental HTTP/3 client.
http3 = ["rustls-tls-manual-roots", "dep:h3", "dep:h3-quinn", "dep:quinn", "tokio/macros"]
http3 = ["rustls-tls", "dep:h3", "dep:h3-quinn", "dep:quinn", "tokio/macros"]


# Internal (PRIVATE!) features used to aid testing.
Expand All @@ -106,7 +98,6 @@ __tls = ["dep:rustls-pki-types", "tokio/io-util"]
# Enables common rustls code.
# Equivalent to rustls-tls-manual-roots but shorter :)
__rustls = ["dep:hyper-rustls", "dep:tokio-rustls", "dep:rustls", "__tls"]
__rustls-ring = ["hyper-rustls?/ring", "tokio-rustls?/ring", "rustls?/ring", "quinn?/ring"]
__rustls-aws-lc-rs = ["hyper-rustls?/aws-lc-rs", "tokio-rustls?/aws-lc-rs", "rustls?/aws-lc-rs", "quinn?/aws-lc-rs"]

[dependencies]
Expand Down Expand Up @@ -156,6 +147,7 @@ tokio-native-tls = { version = "0.3.0", optional = true }
hyper-rustls = { version = "0.27.0", default-features = false, optional = true, features = ["http1", "tls12"] }
rustls = { version = "0.23.4", optional = true, default-features = false, features = ["std", "tls12"] }
tokio-rustls = { version = "0.26", optional = true, default-features = false, features = ["tls12"] }
rustls-platform-verifier = { version = "0.6", optional = true }
webpki-roots = { version = "1", optional = true }
rustls-native-certs = { version = "0.8.0", optional = true }

Expand Down
Loading