feat: add native-tls as an optional TLS backend (#631)

Add reqwest-native-tls feature flag to allow users to choose between
rustls (default) and native-tls for HTTP transports.

native-tls uses platform-native TLS implementations:
- OpenSSL on Linux
- Secure Transport on macOS
- SChannel on Windows

This is particularly useful for Linux distribution packagers who need
to link against system TLS libraries (e.g., OpenSSL) rather than
bundling a separate TLS implementation. Linking against system libs
ensures security updates are applied system-wide and satisfies
distribution packaging policies.

Updated documentation to explain the available TLS backend options.
This commit is contained in:
Rodolfo Olivieri 2026-02-03 21:27:37 -03:00 committed by GitHub
parent 53b64a9f87
commit bfd9cc08d8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 6 additions and 0 deletions

View file

@ -88,6 +88,8 @@ reqwest = ["__reqwest", "reqwest?/rustls-tls"]
reqwest-tls-no-provider = ["__reqwest", "reqwest?/rustls-tls-no-provider"]
reqwest-native-tls = ["__reqwest", "reqwest?/native-tls"]
server-side-http = [
"uuid",
"dep:rand",

View file

@ -270,6 +270,10 @@ RMCP uses feature flags to control which components are included:
- `transport-streamable-http-client-reqwest`: a default `reqwest` implementation of the streamable http client
- `auth`: OAuth2 authentication support
- `schemars`: JSON Schema generation (for tool definitions)
- TLS backend options (for HTTP transports):
- `reqwest`: Uses rustls (pure Rust TLS, recommended default)
- `reqwest-native-tls`: Uses platform native TLS (OpenSSL on Linux, Secure Transport on macOS, SChannel on Windows)
- `reqwest-tls-no-provider`: Uses rustls without a default crypto provider (bring your own)
## Transports