[package]
name = "scan_crate"
version = "0.1.0-alpha.2"
edition = "2021"
description = "Fast regex search through Rust crate source code - supports crates.io, GitHub repos, and local paths"
keywords = ["mcp", "code-analysis", "ripgrep", "crates", "search"]
categories = ["development-tools", "command-line-utilities"]
homepage = "https://github.com/verse-pbc/scan_crate"
repository = "https://github.com/verse-pbc/scan_crate"
license = "MIT"
authors = ["daniel@nos.social"]
readme = "README.md"

[features]
default = ["mcp"]
mcp = ["dep:rmcp", "dep:schemars"]

[dependencies]
# Core dependencies
anyhow = "1.0.79"
async-trait = "0.1"
tokio = { version = "1", features = ["full"] }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0.108"
thiserror = "1.0"
futures = "0.3"

# CLI dependencies
clap = { version = "4.5.13", features = ["derive"] }
log = "0.4"
simplelog = "0.12"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["fmt", "env-filter", "json"] }

# MCP dependencies (optional)
rmcp = { version = "0.1.5", features = ["transport-io", "server", "macros"], optional = true }
rmcp-macros = { version = "0.1.5" }
schemars = { version = "0.8", optional = true }

# Crate fetching and analysis
crates_io_api = "=0.11.0"
cargo_metadata = "0.18.1"
semver = "1.0.21"
regex = "1"
colored = "2"
dirs = "5"
glob = "0.3"
walkdir = "2"
tempfile = "3"
tar = "0.4"
flate2 = { version = "1.0", features = ["zlib"], default-features = false }
toml = "0.8"

[[bin]]
name = "scan_crate"
path = "src/main.rs"

[dev-dependencies]
tokio = { version = "1", features = ["macros", "rt-multi-thread"] }
assert_cmd = "2.0"