diff --git a/crates/rmcp/Cargo.toml b/crates/rmcp/Cargo.toml index 088c72fb2..e532c5ea8 100644 --- a/crates/rmcp/Cargo.toml +++ b/crates/rmcp/Cargo.toml @@ -37,7 +37,6 @@ base64 = { version = "0.21", optional = true } reqwest = { version = "0.12", default-features = false, features = [ "json", "stream", - "rustls-tls", ], optional = true } sse-stream = { version = "0.1.3", optional = true } url = { version = "2.4", optional = true } @@ -62,7 +61,9 @@ default = ["base64", "macros", "server"] client = [] server = ["transport-async-rw", "dep:schemars"] macros = ["dep:rmcp-macros", "dep:paste"] -transport-sse = ["dep:reqwest", "dep:sse-stream", "dep:url"] +__transport-sse = ["dep:reqwest", "dep:sse-stream", "dep:url"] +transport-sse = ["__transport-sse", "reqwest?/rustls-tls"] +transport-sse-tls-no-provider = ["__transport-sse", "reqwest?/rustls-tls-no-provider"] transport-async-rw = ["tokio/io-util", "tokio-util/codec"] transport-io = ["transport-async-rw", "tokio/io-std"] transport-child-process = ["transport-async-rw", "tokio/process"] @@ -74,7 +75,9 @@ transport-sse-server = [ ] # transport-ws = ["transport-io", "dep:tokio-tungstenite"] tower = ["dep:tower-service"] -auth = ["dep:oauth2", "dep:reqwest", "dep:url"] +__auth = ["dep:oauth2", "dep:reqwest", "dep:url"] +auth = ["__auth", "reqwest?/rustls-tls"] +auth-tls-no-provider = ["auth", "reqwest?/rustls-tls-no-provider"] [dev-dependencies] tokio = { version = "1", features = ["full"] } diff --git a/crates/rmcp/src/transport.rs b/crates/rmcp/src/transport.rs index 9b49f7622..9e27f0667 100644 --- a/crates/rmcp/src/transport.rs +++ b/crates/rmcp/src/transport.rs @@ -51,14 +51,14 @@ pub mod io; #[cfg(feature = "transport-io")] pub use io::stdio; -#[cfg(feature = "transport-sse")] +#[cfg(feature = "__transport-sse")] pub mod sse; -#[cfg(feature = "transport-sse")] +#[cfg(feature = "__transport-sse")] pub use sse::SseTransport; -#[cfg(all(feature = "transport-sse", feature = "auth"))] +#[cfg(all(feature = "__transport-sse", feature = "__auth"))] pub mod sse_auth; -#[cfg(all(feature = "transport-sse", feature = "auth"))] +#[cfg(all(feature = "__transport-sse", feature = "__auth"))] pub use sse_auth::{AuthorizedSseClient, create_authorized_transport}; // #[cfg(feature = "tower")] @@ -69,9 +69,9 @@ pub mod sse_server; #[cfg(feature = "transport-sse-server")] pub use sse_server::SseServer; -#[cfg(feature = "auth")] +#[cfg(feature = "__auth")] pub mod auth; -#[cfg(feature = "auth")] +#[cfg(feature = "__auth")] pub use auth::{AuthError, AuthorizationManager, AuthorizationSession, AuthorizedHttpClient}; // #[cfg(feature = "transport-ws")]