[package] name = "picobot" version = "0.2.0" edition = "2024" [lints.rust] # 编译期硬错误:避免明显的内存安全/正确性隐患 unsafe_op_in_unsafe_fn = "warn" rust_2018_idioms = "warn" [lints.clippy] # 渐进式策略: # - 不直接声明 lint group(correctness/suspicious/complexity/perf), # 因为 lint group 在 [lints] 中需用 priority 语法,简单 = "warn" 会报错; # 且 clippy 默认已把 correctness 设为 deny,无需重复声明。 # - 仅显式 warn 少量高价值且存量不大的具体规则,避免一上线淹没在噪音中。 # 后续随着存量问题清理,可逐步把 unwrap_used/expect_used 升级为 warn。 redundant_clone = "warn" dbg_macro = "warn" print_stderr = "warn" print_stdout = "warn" [dependencies] reqwest = { version = "0.13.2", default-features = false, features = ["json", "rustls", "multipart", "stream"] } dotenv = "0.15" serde = { version = "1.0", features = ["derive"] } regex = "1.0" serde_json = "1.0" serde_yaml = "0.9" async-trait = "0.1" thiserror = "2.0.18" tokio = { version = "1.0", features = ["full"] } tokio-util = { version = "0.7", features = ["rt"] } uuid = { version = "1.0", features = ["v4"] } axum = { version = "0.8", features = ["ws"] } tokio-tungstenite = { version = "0.29.0", features = ["rustls-tls-webpki-roots", "rustls"] } futures-util = "0.3" clap = { version = "4", features = ["derive"] } dirs = "6.0.0" prost = "0.14" tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] } tracing-appender = "0.2" anyhow = "1.0" chrono = { version = "0.4", features = ["serde"] } chrono-tz = "0.10" cron = { version = "0.13", features = ["serde"] } iana-time-zone = "0.1" mime_guess = "2.0" base64 = "0.22" image = { version = "0.25", default-features = false, features = ["jpeg", "png", "gif", "webp"] } tempfile = "3" meval = "0.2" rusqlite = { version = "0.39", features = ["bundled"] } r2d2 = "0.8" r2d2_sqlite = "0.34" rustls = { version = "0.23", features = ["ring"] } wechatbot = { path = "vendor/wechatbot" } encoding_rs = "0.8" libc = "0.2" gray_matter = { version = "0.2", default-features = false, features = ["yaml"] } [target.'cfg(windows)'.dependencies] windows-sys = { version = "0.59", features = [ "Win32_System_Threading", "Win32_System_Diagnostics_Debug", "Win32_Foundation", "Win32_System_Kernel", ] } # MCP (Model Context Protocol) support rmcp = { version = "1.7", features = [ "client", "transport-child-process", "transport-streamable-http-client-reqwest", "reqwest", ] } schemars = "1.0" http = "1" tower-http = { version = "0.6", features = ["fs"] } rust-embed = "8"