[package]
name = "codelore-lib"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
repository.workspace = true
description = "CodeLore — Behavioral Code Analyzer library"
readme.workspace = true
keywords.workspace = true
categories.workspace = true
[lints]
workspace = true
[build-dependencies]
ureq = "3"
sha2 = "0.11"
hex = "0.4"
[dependencies]
time = { version = "0.3", features = ["serde", "macros"] }
serde = { version = "1", features = ["derive"] }
serde_json = { version = "1", features = ["float_roundtrip"] }
thiserror = "2"
arrow = "59.1"
gix = { version = "0.86", features = ["max-performance", "blob-diff"] }
tempfile = { version = "3", optional = true }
duckdb = { version = "=1.10505.0", features = ["bundled", "appender-arrow"] }
crossbeam-channel = "0.5"
codelore-rca = { path = "../codelore-rca", version = "0.27.3" }
percent-encoding = "2"
leiden-rs = { version = "0.8", default-features = false, features = ["rayon"] }
headless_chrome = { version = "1", optional = true }
sha2 = "0.11"
hex = "0.4"
tree-sitter = "=0.25.3"
tree-sitter-rust = "=0.23.2"
tree-sitter-python = "=0.23.6"
tree-sitter-java = "=0.23.5"
tree-sitter-javascript = "=0.23.1"
tree-sitter-typescript = "=0.23.1"
walkdir = "2"
globset = "0.4"
ignore = "0.4"
dirs = "6"
anstyle = "1"
tracing = "0.1"
rayon = "1"
regex = "1"
fancy-regex = "0.19"
toml = { version = "1", default-features = false, features = ["parse", "serde", "display", "preserve_order"] }
ureq = { version = "3", features = ["json"] }
[features]
default = []
test-support = ["dep:tempfile"]
spa = []
browser-tests = ["spa", "dep:headless_chrome"]
[dev-dependencies]
criterion = "0.8"
[[bench]]
name = "end_to_end"
harness = false
required-features = ["test-support"]
[[test]]
name = "facts_test"
required-features = ["test-support"]
[[test]]
name = "gix_repo_test"
required-features = ["test-support"]
[[test]]
name = "ingest_test"
required-features = ["test-support"]
[[test]]
name = "revisions_test"
required-features = ["test-support"]
[[test]]
name = "complexity_test"
[[test]]
name = "hotspots_test"
required-features = ["test-support"]
[[test]]
name = "code_health_test"
required-features = ["test-support"]
[[test]]
name = "change_set_test"
required-features = ["test-support"]
[[test]]
name = "calibration_test"
required-features = ["test-support"]
[[test]]
name = "defect_calibration_test"
required-features = ["test-support"]
[[test]]
name = "mailmap_test"
required-features = ["test-support"]
[[test]]
name = "kamei_test"
required-features = ["test-support"]
[[test]]
name = "churn_test"
required-features = ["test-support"]
[[test]]
name = "code_age_test"
required-features = ["test-support"]
[[test]]
name = "communication_test"
required-features = ["test-support"]
[[test]]
name = "ownership_test"
required-features = ["test-support"]
[[test]]
name = "coupling_test"
required-features = ["test-support"]
[[test]]
name = "summary_test"
required-features = ["test-support"]
[[test]]
name = "authors_test"
required-features = ["test-support"]
[[test]]
name = "clones_exclude_test"
required-features = ["test-support"]
[[test]]
name = "clones_factsdb_test"
required-features = ["test-support"]
[[test]]
name = "clone_coupling_test"
required-features = ["test-support"]
[[test]]
name = "imports_factsdb_test"
required-features = ["test-support"]
[[test]]
name = "provenance_test"
required-features = ["test-support"]
[[test]]
name = "output_json_test"
[[test]]
name = "output_sarif_test"
[[test]]
name = "output_parquet_test"
required-features = ["test-support"]
[[test]]
name = "output_sqlite_test"
required-features = ["test-support"]
[[test]]
name = "git_cli_repo_test"
required-features = ["test-support"]
[[test]]
name = "differential_repo_test"
required-features = ["test-support"]
[[test]]
name = "code_maat_parity_test"
required-features = ["test-support"]
[[test]]
name = "cache_test"
required-features = ["test-support"]
[[test]]
name = "ownership_hhi_window_spike_test"
required-features = ["test-support"]
[[test]]
name = "bus_factor_test"
required-features = ["test-support"]
[[test]]
name = "lead_time_test"
required-features = ["test-support"]
[[test]]
name = "stale_code_test"
required-features = ["test-support"]
[[test]]
name = "pair_programming_test"
required-features = ["test-support"]
[[test]]
name = "god_classes_test"
required-features = ["test-support"]
[[test]]
name = "arch_violations_test"
required-features = ["test-support"]
[[test]]
name = "spa_browser_test"
required-features = ["browser-tests", "test-support"]
[[test]]
name = "centrality_test"
required-features = ["test-support"]
[[test]]
name = "communities_test"
required-features = ["test-support"]
[[test]]
name = "mi_test"
required-features = ["test-support"]
[[test]]
name = "effort_exposure_test"
required-features = ["test-support"]
[[test]]
name = "new_code_test"
required-features = ["test-support"]
[[test]]
name = "commit_parents_test"
required-features = ["test-support"]
[[test]]
name = "test_support_fixture_test"
required-features = ["test-support"]
[[test]]
name = "knowledge_shares_test"
required-features = ["test-support"]
[[test]]
name = "code_familiarity_test"
required-features = ["test-support"]
[[test]]
name = "function_xray_test"
required-features = ["test-support"]
[[test]]
name = "function_coupling_test"
required-features = ["test-support"]
[[test]]
name = "sarif_parse_test"
[[test]]
name = "external_store_test"
required-features = ["test-support"]
[[test]]
name = "finding_hotspot_overlap_test"
required-features = ["test-support"]
[[test]]
name = "code_maat_csv_compat_test"
required-features = ["test-support"]
[[test]]
name = "enrichment_fact_sheet_test"
required-features = ["test-support"]
[[test]]
name = "entity_ownership_test"
required-features = ["test-support"]
[[test]]
name = "entity_effort_test"
required-features = ["test-support"]