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