[package]
name = "symforge"
version = "7.10.0"
edition = "2024"
description = "SymForge — in-memory code intelligence MCP server for Claude Code, Codex, and Gemini CLI"
license-file = "LICENSE"
repository = "https://github.com/special-place-administrator/symforge"

[lib]
name = "symforge"
path = "src/lib.rs"

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

[dependencies]
aho-corasick = "1.1"
anyhow = "1.0"
arc-swap = "1"
ast-grep-core = "0.42"
automod = "1"
sha2 = "0.10"
parking_lot = "0.12"
rayon = "1.10"
schemars = "1"
rmcp = { version = "1.1.0", features = ["transport-io"] }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
serde_yml = "0.0.12"
toml_edit = "0.23"
thiserror = "2.0"
tokio = { version = "1.48", features = ["io-std", "macros", "rt-multi-thread", "time", "sync", "signal"] }
postcard = { version = "1.1", features = ["use-std"] }
axum = "0.8"
clap = { version = "4", features = ["derive"] }
dirs = "6"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
tree-sitter = "0.26"
streaming-iterator = "0.1"
tree-sitter-rust = "0.24"
tree-sitter-python = "0.25"
tree-sitter-javascript = "0.25"
tree-sitter-typescript = "0.23.2"
tree-sitter-go = "0.25"
tree-sitter-java = "0.23.5"
tree-sitter-c = "0.24.1"
tree-sitter-cpp = "0.23.4"
tree-sitter-c-sharp = "0.23.1"
tree-sitter-ruby = "0.23.1"
tree-sitter-php = "0.24.2"
tree-sitter-swift = "0.7.1"
tree-sitter-perl = "1.1.2"
tree-sitter-kotlin-sg = "0.4.0"
tree-sitter-dart = "0.0.4"
tree-sitter-elixir = "0.3.5"
tree-sitter-html = "0.23.2"
tree-sitter-css = "0.25.0"
tree-sitter-scss = "1.0.0"
ignore = "0.4"
notify = "8"
notify-debouncer-full = "0.7"
regex = "1.11"
reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls"] }
globset = "0.4"
git2 = { version = "0.20", default-features = false, features = ["vendored-libgit2"] }
rusqlite = { version = "0.32", features = ["bundled"] }
tempfile = "3"
libc = "0.2.183"
dunce = "1"
socket2 = "0.6"

[dev-dependencies]
tempfile = "3"
once_cell = "1"
postcard = { version = "1.1", features = ["use-std"] }

[patch.crates-io]
# Upstream build.rs uses `-Wno-unused-parameter` which MSVC rejects.
# Patched copy uses `flag_if_supported` so the flag is silently skipped on MSVC.
tree-sitter-scss = { path = "vendor/tree-sitter-scss" }

[profile.release]
lto = true
codegen-units = 1
strip = true
