rust-sdk/crates/rmcp/Cargo.toml
jokemanfire 0a2f13a1f4
style: fmt the project (#54)
add rustfmt.toml

Signed-off-by: jokemanfire <hu.dingyang@zte.com.cn>
2025-03-28 23:50:46 +08:00

99 lines
No EOL
2.7 KiB
TOML

cargo-features = ["edition2024"]
[package]
name = "rmcp"
license = { workspace = true }
version = { workspace = true }
edition = { workspace = true }
repository = { workspace = true }
homepage = { workspace = true }
readme = { workspace = true }
description = "Rust SDK for Model Context Protocol"
documentation = "https://docs.rs/rmcp"
[package.metadata.docs.rs]
all-features = true
[dependencies]
serde = { version = "1.0", features = ["derive", "rc"] }
serde_json = "1.0"
thiserror = "2"
chrono = { version = "0.4.38", features = ["serde"] }
tokio = { version = "1", features = ["sync", "macros", "rt", "time"] }
futures = "0.3"
tracing = { version = "0.1" }
tokio-util = { version = "0.7" }
pin-project-lite = "0.2"
paste = { version = "1", optional = true }
# for auto generate schema
schemars = { version = "0.8", optional = true }
# for image encoding
base64 = { version = "0.21", optional = true }
# for SSE client
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 }
# For tower compatibility
tower-service = { version = "0.3", optional = true }
# for ws transport
# tokio-tungstenite ={ version = "0.26", optional = true }
# for sse-server transport
axum = { version = "0.8", features = [], optional = true }
rand = { version = "0.9", optional = true }
tokio-stream = { version = "0.1", optional = true }
# macro
rmcp-macros = { version = "0.1", workspace = true, optional = true }
[features]
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-async-rw = ["tokio/io-util", "tokio-util/codec"]
transport-io = ["transport-async-rw", "tokio/io-std"]
transport-child-process = ["transport-async-rw", "tokio/process"]
transport-sse-server = [
"transport-async-rw",
"dep:axum",
"dep:rand",
"dep:tokio-stream",
]
# transport-ws = ["transport-io", "dep:tokio-tungstenite"]
tower = ["dep:tower-service"]
[dev-dependencies]
tokio = { version = "1", features = ["full"] }
schemars = { version = "0.8" }
anyhow = "1.0"
tracing-subscriber = { version = "0.3", features = [
"env-filter",
"std",
"fmt",
] }
[[test]]
name = "test_tool_macros"
required-features = ["server"]
path = "tests/test_tool_macros.rs"
[[test]]
name = "test_with_python"
required-features = ["server", "client", "transport-sse-server", "transport-sse", "transport-child-process"]
path = "tests/test_with_python.rs"
[[test]]
name = "test_with_js"
required-features = ["server", "transport-sse-server"]
path = "tests/test_with_js.rs"