diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 36d1c885db..f83dcc3801 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -25,6 +25,7 @@ jobs: - ffi-header - doc - check-external-types + - udeps steps: - run: exit 0 @@ -232,3 +233,22 @@ jobs: - name: check-external-types run: cargo check-external-types --config .github/workflows/external-types.toml + + udeps: + needs: [style] + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Install Rust + uses: dtolnay/rust-toolchain@nightly + + - name: Install cargo-udeps + uses: taiki-e/install-action@cargo-udeps + + - name: Check unused dependencies on default features + run: cargo udeps + + - name: Check unused dependencies on full features + run: cargo udeps --features full diff --git a/Cargo.toml b/Cargo.toml index 61a285ef2f..68835c82e6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -28,13 +28,13 @@ http-body = "=1.0.0-rc.2" http-body-util = { version = "=0.1.0-rc.3", optional = true } httparse = "1.8" h2 = { version = "0.3.9", optional = true } -itoa = "1" pin-project-lite = "0.2.4" tokio = { version = "1", features = ["sync"] } # Optional httpdate = { version = "1.0", optional = true } +itoa = { version = "1", optional = true } libc = { version = "0.2", optional = true } tracing = { version = "0.1", default-features = false, features = ["std"], optional = true } want = { version = "0.3", optional = true } @@ -74,7 +74,7 @@ full = [ ] # HTTP versions -http1 = [] +http1 = ["dep:itoa"] http2 = ["dep:h2"] # Client/Server