@@ -17,17 +17,30 @@ exclude = [
1717name = " gvm"
1818path = " src/main.rs"
1919
20+ # ── Shared dependencies (all platforms) ────────────────────────────────────────
2021[dependencies ]
2122tokio = { version = " 1" , features = [" full" ] }
2223clap = { version = " 4" , features = [" derive" , " env" ] }
2324anyhow = " 1"
2425thiserror = " 2"
25- reqwest = { version = " 0.13" , features = [" json" , " rustls" ] }
2626serde = { version = " 1" , features = [" derive" ] }
2727serde_json = " 1"
2828gcp_auth = " 0.12"
2929colored = " 3"
3030google-cloud-auth = " 1.9.0"
3131google-cloud-compute-v1 = " 2.4.0"
3232google-cloud-gax = " 1.9.1"
33- rustls-platform-verifier = " 0.7.0"
33+
34+ # ── TLS — non-Android platforms: reqwest with rustls ───────────────────────────
35+ # rustls-platform-verifier works correctly on Linux, macOS, and Windows because
36+ # those targets never call into a JVM.
37+ [target .'cfg(not(target_os = "android"))' .dependencies ]
38+ reqwest = { version = " 0.13" , features = [" json" , " rustls" ] }
39+
40+ # ── TLS — Android (Termux CLI binary) ─────────────────────────────────────────
41+ # rustls-platform-verifier requires a live Java VM and an Android Context object
42+ # obtained through JNI. A Termux process has neither; initialising the verifier
43+ # is impossible and every TLS handshake panics. Use native-tls (vendored OpenSSL
44+ # linked at compile time by cargo-ndk) instead.
45+ [target .'cfg(target_os = "android")' .dependencies ]
46+ reqwest = { version = " 0.13" , default-features = false , features = [" json" , " native-tls-vendored" ] }
0 commit comments