[package]
name = "codenexus"
version = "0.3.4"
edition = "2021"
rust-version = "1.95"
description = "A queryable code knowledge graph tool built on LadybugDB and tree-sitter"
authors = ["Kirky.X"]
license = "MIT"
repository = "https://github.com/Kirky-X/codenexus"
readme = "README.md"
keywords = ["code-analysis", "knowledge-graph", "tree-sitter", "ladybugdb", "code-indexing"]
categories = ["command-line-utilities", "development-tools", "parsing"]
homepage = "https://github.com/Kirky-X/codenexus"
documentation = "https://github.com/Kirky-X/codenexus#readme"
build = "build.rs"
[lib]
name = "codenexus"
path = "src/lib.rs"
[[bin]]
name = "codenexus"
path = "src/main.rs"
[[bin]]
name = "codenexus-verify"
path = "tools/verification/src/main.rs"
[features]
default = ["full"]
minimal = ["lang-rust"]
core = ["lang-c", "lang-rust", "lang-python"]
full = ["core", "lang-fortran", "lang-typescript", "lang-go", "lang-java", "lang-cpp", "lang-javascript", "lang-ruby", "lang-haskell", "lang-ocaml", "lang-scala", "lang-php", "lang-csharp", "lang-bash", "lang-html", "lang-css", "lang-json", "lang-regex", "lang-verilog", "daemon", "analysis", "complexity", "api-review", "community", "cross-service", "lsp", "cli", "mcp", "cache", "embed", "i18n"]
lang-c = ["dep:tree-sitter-c"]
lang-rust = ["dep:tree-sitter-rust"]
lang-fortran = ["dep:tree-sitter-fortran"]
lang-python = ["dep:tree-sitter-python"]
lang-typescript = ["dep:tree-sitter-typescript"]
lang-go = ["dep:tree-sitter-go"]
lang-java = ["dep:tree-sitter-java"]
lang-cpp = ["dep:tree-sitter-cpp"]
lang-javascript = ["dep:tree-sitter-javascript"]
lang-ruby = ["dep:tree-sitter-ruby"]
lang-haskell = ["dep:tree-sitter-haskell"]
lang-ocaml = ["dep:tree-sitter-ocaml"]
lang-scala = ["dep:tree-sitter-scala"]
lang-php = ["dep:tree-sitter-php"]
lang-csharp = ["dep:tree-sitter-c-sharp"]
lang-bash = ["dep:tree-sitter-bash"]
lang-html = ["dep:tree-sitter-html"]
lang-css = ["dep:tree-sitter-css"]
lang-json = ["dep:tree-sitter-json"]
lang-regex = ["dep:tree-sitter-regex"]
lang-verilog = ["dep:tree-sitter-verilog"]
embed = ["dep:reqwest", "dep:ort", "dep:tokenizers", "dep:ndarray"]
daemon = ["dep:notify", "dep:notify-debouncer-full"]
analysis = []
api-review = ["analysis"]
community = ["analysis", "dep:petgraph"]
cross-service = ["analysis"]
complexity = ["analysis"]
lsp = ["dep:lsp-types", "dep:lsp-server", "dep:crossbeam-channel"]
mcp = ["dep:sdforge", "sdforge/mcp", "dep:oxiarc-zstd", "dep:rmcp"]
cli = ["dep:sdforge", "sdforge/cli", "dep:oxiarc-zstd"]
cache = ["dep:oxcache"]
i18n = ["dep:icu_normalizer", "dep:icu_casemap"]
[dependencies]
trait-kit = { version = "0.3", default-features = false, features = ["async"] }
lbug = "0.18"
tree-sitter = "0.26"
tree-sitter-c = { version = "0.24", optional = true }
tree-sitter-rust = { version = "0.24", optional = true }
tree-sitter-fortran = { version = "0.6", optional = true }
tree-sitter-python = { version = "0.25", optional = true }
tree-sitter-typescript = { version = "0.23", optional = true }
tree-sitter-go = { version = "0.25", optional = true }
tree-sitter-java = { version = "0.23", optional = true }
tree-sitter-cpp = { version = "0.23", optional = true }
tree-sitter-javascript = { version = "0.25", optional = true }
tree-sitter-ruby = { version = "0.23", optional = true }
tree-sitter-haskell = { version = "0.23", optional = true }
tree-sitter-ocaml = { version = "0.25", optional = true }
tree-sitter-scala = { version = "0.26", optional = true }
tree-sitter-php = { version = "0.24", optional = true }
tree-sitter-c-sharp = { version = "0.23", optional = true }
tree-sitter-bash = { version = "0.25", optional = true }
tree-sitter-html = { version = "0.23", optional = true }
tree-sitter-css = { version = "0.25", optional = true }
tree-sitter-json = { version = "0.24", optional = true }
tree-sitter-regex = { version = "0.25", optional = true }
tree-sitter-verilog = { version = "1.0", optional = true }
rayon = "1"
ignore = "0.4"
notify = { version = "8", optional = true }
notify-debouncer-full = { version = "0.6", optional = true }
clap = { version = "4", default-features = false, features = ["std", "derive", "help", "usage", "error-context", "suggestions"] }
sha2 = "0.10"
reqwest = { version = "0.12", default-features = false, features = ["json", "blocking", "rustls-tls"], optional = true }
ort = { version = "2.0.0-rc.12", optional = true }
tokenizers = { version = "0.23", default-features = false, features = ["fancy-regex"], optional = true }
ndarray = { version = "0.17", optional = true }
thiserror = "2"
anyhow = "1"
pest = "2.7"
pest_derive = "2.7"
tracing = "0.1"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
csv = "1"
tempfile = "3"
lz4_flex = "0.11"
uuid = { version = "1", features = ["v7"] }
petgraph = { version = "0.6", default-features = false, optional = true }
lsp-types = { version = "0.95", optional = true }
lsp-server = { version = "0.8", optional = true }
crossbeam-channel = { version = "0.5", optional = true }
sdforge = { version = "0.4", default-features = false, optional = true }
rmcp = { version = "2.1", default-features = false, features = ["server"], optional = true }
tokio = { version = "1", features = ["rt-multi-thread", "macros", "io-std", "io-util"] }
oxcache = { version = "0.3", default-features = false, features = ["minimal"], optional = true }
oxiarc-zstd = { version = "0.3", default-features = false, optional = true }
inklog = { version = "0.1", default-features = false }
regex = "1"
icu_normalizer = { version = "2", default-features = false, features = ["compiled_data"], optional = true }
icu_casemap = { version = "2", default-features = false, features = ["compiled_data"], optional = true }
[dev-dependencies]
criterion = { version = "0.5", features = ["html_reports"] }
time = { version = "0.3", features = ["macros"] }
rust_decimal = "1.37"
sysinfo = "0.39"
tokio = { version = "1", features = ["rt-multi-thread", "macros"] }
serial_test = "3"
oxiarc-zstd = { version = "0.3", default-features = false }
tracing-subscriber = "0.3"
crossbeam-channel = "0.5"
[build-dependencies]
pkg-config = "0.3"
[[bench]]
name = "index_bench"
harness = false
[[bench]]
name = "query_bench"
harness = false
[[bench]]
name = "trace_bench"
harness = false
[[bench]]
name = "incremental_bench"
harness = false
[[bench]]
name = "memory_bench"
harness = false
[[bench]]
name = "daemon_bench"
harness = false
required-features = ["daemon"]
[[bench]]
name = "graph_bench"
harness = false
[profile.release]
opt-level = 3
lto = "fat"
codegen-units = 1
panic = "abort"
strip = true
overflow-checks = false
[profile.release.package."*"]
opt-level = 3
[profile.dev]
opt-level = 0
debug = true
incremental = true
[profile.test]
opt-level = 0
debug = true
[profile.bench]
inherits = "release"
[lints.rust]
unexpected_cfgs = "allow"