[package]
name = "context-builder"
version = "0.8.1"
default-run = "context-builder"
edition = "2024"
authors = ["Igor Lins e Silva"]
description = "CLI tool to aggregate directory contents into a single markdown file optimized for LLM consumption"
readme = "README.md"
homepage = "https://github.com/igorls/context-builder"
repository = "https://github.com/igorls/context-builder"
license = "MIT"
keywords = ["cli", "markdown", "documentation", "llm", "context"]
categories = ["command-line-utilities", "development-tools"]
[dependencies]
clap = { version = "4.5.58", features = ["derive"] }
chrono = { version = "0.4.43", features = ["serde"] }
ignore = "0.4.25"
log = "0.4.29"
env_logger = "0.11.9"
rayon = { version = "1.10", optional = true }
serde = { version = "1.0.228", features = ["derive"] }
toml = "1.0.1"
similar = "2.7.0"
tempfile = "3.25.0"
tiktoken-rs = "0.9.1"
once_cell = "1.21.3"
fs2 = "0.4.3"
serde_json = "1.0.143"
crossbeam-channel = "0.5.15"
num_cpus = "1.17.0"
encoding_rs = "0.8.35"
walkdir = "2.5.0"
xxhash-rust = { version = "0.8", features = ["xxh3"] }
tree-sitter = { version = "0.26", optional = true }
tree-sitter-rust = { version = "0.24", optional = true }
tree-sitter-javascript = { version = "0.25", optional = true }
tree-sitter-typescript = { version = "0.23", optional = true }
tree-sitter-python = { version = "0.25", optional = true }
tree-sitter-go = { version = "0.25", optional = true }
tree-sitter-java = { version = "0.23", optional = true }
tree-sitter-c = { version = "0.24", optional = true }
tree-sitter-cpp = { version = "0.23", optional = true }
[features]
default = ["parallel"]
parallel = ["rayon"]
samples-bin = []
tree-sitter-base = ["dep:tree-sitter"]
tree-sitter-rust = ["tree-sitter-base", "dep:tree-sitter-rust"]
tree-sitter-js = ["tree-sitter-base", "dep:tree-sitter-javascript"]
tree-sitter-ts = ["tree-sitter-base", "dep:tree-sitter-typescript"]
tree-sitter-python = ["tree-sitter-base", "dep:tree-sitter-python"]
tree-sitter-go = ["tree-sitter-base", "dep:tree-sitter-go"]
tree-sitter-java = ["tree-sitter-base", "dep:tree-sitter-java"]
tree-sitter-c = ["tree-sitter-base", "dep:tree-sitter-c"]
tree-sitter-cpp = ["tree-sitter-base", "dep:tree-sitter-cpp"]
tree-sitter-all = [
"tree-sitter-rust",
"tree-sitter-js",
"tree-sitter-ts",
"tree-sitter-python",
"tree-sitter-go",
"tree-sitter-java",
"tree-sitter-c",
"tree-sitter-cpp",
]
[dev-dependencies]
tempfile = "3.25.0"
criterion = { version = "0.8.2", features = ["html_reports"] }
pretty_assertions = "1.4.1"
serial_test = "3.0"
[[bench]]
name = "context_bench"
harness = false
[[bin]]
name = "generate_samples"
path = "scripts/generate_samples.rs"
required-features = ["samples-bin"]