Is your feature request related to a problem? Please describe.
No response
Describe the solution you'd like
The workspace Cargo.toml declares reqwest without default-features = false:
reqwest = { version = "0.12", features = ["json", "stream"] }
This pulls in native-tls → openssl-sys as a transitive dependency. This breaks cross-compilation to musl targets (e.g. x86_64-unknown-linux-musl) and any environment without OpenSSL development headers
installed.
Suggested fix
reqwest = { version = "0.12", default-features = false, features = ["json", "stream", "rustls-tls"] }
Or alternatively, expose TLS backend selection via feature flags:
[features]
default = ["rustls-tls"]
native-tls = ["reqwest/native-tls"]
rustls-tls = ["reqwest/rustls-tls"]
Reproduction
Any downstream crate that depends on agntcy-a2a-client will transitively pull in openssl-sys, even if the downstream crate explicitly uses default-features = false on its own reqwest dependency. Cargo
feature unification merges the features at the binary level, so there is no way for downstream consumers to opt out of native-tls.
cargo tree -i native-tls
native-tls v0.2.18
├── hyper-tls v0.6.0
│ └── reqwest v0.12.28
│ └── agntcy-a2a-client
### Describe alternatives you've considered
_No response_
### Additional context
_No response_
### Code of Conduct
- [x] I agree to follow this project's Code of Conduct
Is your feature request related to a problem? Please describe.
No response
Describe the solution you'd like
The workspace
Cargo.tomldeclaresreqwestwithoutdefault-features = false: