[workspace] # 排除 fastembed(ort-sys 不支持部分平台) members = ["document-parser", "mcp-common", "mcp-proxy", "mcp-sse-proxy", "mcp-streamable-proxy", "oss-client", "voice-cli"] # 默认只构建 mcp-proxy(排除 document-parser 等需要特殊环境的包) default-members = ["mcp-proxy", "mcp-common", "mcp-sse-proxy", "mcp-streamable-proxy"] resolver = "2" exclude = ["fastembed"] # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [workspace.dependencies] mcp-proxy = { path = "mcp-proxy" } oss-client = { path = "oss-client" } # Note: rmcp 依赖由各子项目独立管理(mcp-sse-proxy 用 0.10,mcp-streamable-proxy 用 0.12) tokio = { version = "1.48", features = ["macros", "net", "rt", "rt-multi-thread"] } tokio-util = "0.7" # Logging and tracing tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter"] } tracing-appender = "0.2" tracing-opentelemetry = "0.32" opentelemetry = { version = "0.31", features = ["trace"] } opentelemetry-jaeger = { version = "0.22", features = ["rt-tokio"] } opentelemetry-semantic-conventions = { version = "0.31", features = ["semconv_experimental"] } opentelemetry_sdk = "0.31" opentelemetry-otlp = { version = "0.31", features = ["grpc-tonic"] } tonic = "0.13" hostname = "0.4" uuid = { version = "1.19", features = ["v4", "v7"] } rand = "0.9" log = "0.4" anyhow = "1.0" chrono = { version = "0.4", features = ["serde", "now"] } thiserror = "2.0" axum = { version = "0.8", features = [ "http2", "query", "tracing", "ws", "multipart", "macros", ] } tower = { version = "0.5" } tower-http = { version = "0.6", features = [ "compression-full", "cors", "fs", "trace", "limit", ] } axum-extra = { version = "0.12", features = ["typed-header"] } utoipa = { version = "5.4", features = ["axum_extras", "chrono", "uuid"] } utoipa-rapidoc = { version = "6", features = ["axum"] } utoipa-redoc = { version = "6", features = ["axum"] } utoipa-swagger-ui = { version = "9", features = ["axum"] } dashmap = "6.1" arc-swap = "1.7" moka = { version = "0.12", features = ["future"] } criterion = "0.7" once_cell = "1.21" serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" serde_yaml = "=0.9.33" serde_with = "3.12" reqwest = { version = "0.13", features = ["json"] } http = "1.4" aliyun-oss-rust-sdk = { version = "0.2", default-features = false, features = ["async"] } clap = { version = "4.5", features = ["derive", "env"] } futures = "0.3" run_code_rmcp = "0.0.35" derive_builder = "0.20" bytes = "1.0" base64 = "0.22" tempfile = "3.23" dirs = "6.0" scopeguard = "1.2" async-trait = "0.1" # 自己开发的语音相关工具 voice-toolkit = { version = "0.16", features = ["stt", "audio"] } # Task queue and persistence for async processing apalis = { version = "0.7", features = ["tracing", "limit"] } apalis-sql = { version = "0.7", features = ["sqlite"] } sqlx = { version = "0.8", features = ["runtime-tokio-rustls", "sqlite", "chrono", "uuid"] } sled = "0.34" # 可执行文件查找 which = "7.0" # 国际化支持 rust-i18n = "3" # Audio format detection and processing symphonia = { version = "0.5", features = ["all"] } bincode = "2.0" tokio-stream = "0.1.18" backtrace = "0.3" tracing-futures = "0.2.5" urlencoding = "2.1.3" # The profile that 'dist' will build with [profile.dist] inherits = "release" lto = "thin"