diff options
| author | main <main@swarm.moe> | 2026-03-19 15:49:41 -0400 |
|---|---|---|
| committer | main <main@swarm.moe> | 2026-03-19 15:49:41 -0400 |
| commit | fa1bd32800b65aab31ea732dd240261b4047522c (patch) | |
| tree | 2fd08af6f36b8beb3c7c941990becc1a0a091d62 /Cargo.toml | |
| download | adequate-rust-mcp-310b00d40db7639654bdc1d416ae222de481e8fc.zip | |
Release adequate-rust-mcp 1.0.0v1.0.0
Diffstat (limited to 'Cargo.toml')
| -rw-r--r-- | Cargo.toml | 130 |
1 files changed, 130 insertions, 0 deletions
diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..5a9cf67 --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,130 @@ +[workspace] +members = [ + "crates/adequate-rust-mcp", + "crates/ra-mcp-domain", + "crates/ra-mcp-engine", +] +resolver = "3" + +[workspace.package] +categories = ["development-tools", "command-line-utilities"] +description = "Crash-resilient rust-analyzer MCP with a durable host, disposable worker, and porcelain-first analysis tools." +edition = "2024" +keywords = ["mcp", "rust-analyzer", "lsp", "ai", "tooling"] +license = "Apache-2.0" +readme = "README.md" +repository = "https://git.swarm.moe/adequate-rust-mcp.git" +rust-version = "1.94" +version = "1.0.0" + +[workspace.dependencies] +assert_matches = "1.5.0" +bytes = "1.10.1" +futures = "0.3.31" +libmcp = { git = "https://git.swarm.moe/libmcp.git", rev = "478b0bc47fade5864f4f397de7ea519beddab749" } +lsp-types = "0.97.0" +notify = "8.2.0" +rmcp = { version = "0.16.0", features = ["server", "macros", "transport-io"] } +schemars = "1.0.4" +serde = { version = "1.0.219", features = ["derive"] } +serde_json = "1.0.143" +serial_test = "3.2.0" +tempfile = "3.22.0" +thiserror = "2.0.16" +tokio = { version = "1.47.1", features = ["full"] } +tokio-util = { version = "0.7.16", features = ["codec"] } +tracing = "0.1.41" +tracing-subscriber = { version = "0.3.20", features = ["env-filter"] } +toml = "0.8.23" +url = "2.5.7" +uuid = { version = "1.18.1", features = ["v4", "serde"] } + +[workspace.lints.rust] +elided_lifetimes_in_paths = "deny" +missing_docs = "deny" +unsafe_code = "deny" +unused_crate_dependencies = "warn" +unused_lifetimes = "deny" +unused_qualifications = "deny" +unused_results = "deny" + +[workspace.lints.clippy] +# Strict baseline. +all = { level = "deny", priority = -2 } +pedantic = { level = "deny", priority = -1 } +cargo = { level = "warn", priority = -3 } + +# Hard bans. +dbg_macro = "deny" +panic = "deny" +todo = "deny" +unimplemented = "deny" +unwrap_used = "deny" + +# Carve-out: test fixtures rely on concise expect messages. +expect_used = "allow" + +# Carve-out: dependency graph churn is external to this repository. +multiple_crate_versions = "allow" + +# Carve-out: rustdoc policy is intentionally lightweight here. +missing_errors_doc = "allow" +missing_panics_doc = "allow" + +# Carve-out: threshold/style lints that create churn without correctness wins. +items_after_statements = "allow" +many_single_char_names = "allow" +module_name_repetitions = "allow" +similar_names = "allow" +struct_field_names = "allow" +too_many_arguments = "allow" +too_many_lines = "allow" +unnested_or_patterns = "allow" +match_same_arms = "allow" + +# Carve-out: API-shape micro-optimizations are not worth readability cost. +needless_pass_by_value = "allow" +ref_option = "allow" +trivially_copy_pass_by_ref = "allow" +unused_async = "allow" + +# Carve-out: numeric ergonomics and formatting are intentionally pragmatic. +cast_lossless = "allow" +cast_possible_truncation = "allow" +cast_possible_wrap = "allow" +cast_precision_loss = "allow" +cast_sign_loss = "allow" +float_cmp = "allow" +implicit_hasher = "allow" +manual_let_else = "allow" +map_unwrap_or = "allow" +uninlined_format_args = "allow" + +# Carve-out: local scaffolding patterns preferred in this codebase. +ignored_unit_patterns = "allow" +must_use_candidate = "allow" +no_effect_underscore_binding = "allow" +redundant_closure_for_method_calls = "allow" +return_self_not_must_use = "allow" +used_underscore_binding = "allow" + +[workspace.metadata.adequate-rust-mcp] +format_command = ["cargo", "fmt", "--all"] +clippy_command = [ + "cargo", + "clippy", + "--workspace", + "--all-targets", + "--all-features", + "--message-format=json", +] +fix_command = [ + "cargo", + "clippy", + "--fix", + "--workspace", + "--all-targets", + "--all-features", + "--allow-dirty", + "--allow-staged", +] |