diff --git a/Cargo.toml b/Cargo.toml index 0b69f5d..e456b02 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "codebank" -version = "0.4.0" +version = "0.4.1" edition = "2024" description = """ A powerful code documentation generator that creates structured markdown documentation from your codebase. @@ -24,21 +24,27 @@ exclude = ["fixtures/*", "examples/*", "tests/*", ".github/*", ".vscode/*"] [dependencies] anyhow = "1.0" axum = "0.8" -clap = { version = "4.0", features = ["derive"] } +clap = { version = "4.0", features = ["derive"], optional = true } ignore = "0.4.23" regex = "1.11.1" rmcp = { version = "0.1.5", features = [ "server", "transport-sse-server", "transport-io", -] } -schemars = "0.8" +], optional = true } +schemars = { version = "0.8", optional = true } serde = { version = "1.0", features = ["derive"] } thiserror = "2.0" -tokio = { version = "1.0", features = ["full"] } -tokio-util = "0.7" +tokio = { version = "1.0", features = [ + "macros", + "rt-multi-thread", + "signal", +], optional = true } +tokio-util = { version = "0.7", optional = true } tracing = "0.1" -tracing-subscriber = { version = "0.3", features = ["env-filter"] } +tracing-subscriber = { version = "0.3", features = [ + "env-filter", +], optional = true } tree-sitter = "0.23" tree-sitter-cpp = "0.23" tree-sitter-go = "0.23" @@ -49,10 +55,17 @@ tree-sitter-typescript = "0.23" [dev-dependencies] tempfile = "3.9" +[features] +default = ["cli", "mcp"] +cli = ["clap", "tracing-subscriber"] +mcp = ["rmcp", "schemars", "tokio", "tokio-util"] + [[bin]] name = "cb" path = "src/bin/codebank.rs" +required-features = ["cli"] [[bin]] name = "cb-mcp" path = "src/bin/mcp.rs" +required-features = ["cli", "mcp"] diff --git a/README.md b/README.md index 779b1bd..200b5f7 100644 --- a/README.md +++ b/README.md @@ -67,7 +67,7 @@ Add CodeBank to your project's dependencies: ```toml [dependencies] -codebank = "0.2.1" # Replace with actual version +codebank = { version = "0.4.1", default-features = false } # Replace with actual version ``` Then use it in your Rust code: diff --git a/src/bin/mcp.rs b/src/bin/mcp.rs index 0d0e128..0da2ce6 100644 --- a/src/bin/mcp.rs +++ b/src/bin/mcp.rs @@ -1,5 +1,5 @@ use clap::{Parser, Subcommand}; -use codebank::mcp::CodeBankMcp; +use codebank::CodeBankMcp; use rmcp::{ ServiceExt, transport::{SseServer, sse_server::SseServerConfig, stdio}, diff --git a/src/lib.rs b/src/lib.rs index 8fe226a..544053a 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -122,15 +122,20 @@ mod bank; mod error; -pub mod mcp; mod parser; +#[cfg(feature = "mcp")] +mod mcp; + use std::path::Path; pub use bank::CodeBank; pub use error::{Error, Result}; pub use parser::*; +#[cfg(feature = "mcp")] +pub use mcp::CodeBankMcp; + /// Strategy for generating code bank documentation. /// /// This enum controls how the code bank generator processes and formats the code. diff --git a/src/mcp/mod.rs b/src/mcp.rs similarity index 100% rename from src/mcp/mod.rs rename to src/mcp.rs