[[bench]]
harness = false
name = "ast_extraction"
path = "benches/ast_extraction.rs"
[[bench]]
harness = false
name = "ast_parsing"
path = "benches/ast_parsing.rs"
[[bench]]
harness = false
name = "callgraph"
path = "benches/callgraph.rs"
[[bench]]
harness = false
name = "e2e"
path = "benches/e2e.rs"
[[bench]]
harness = false
name = "flow_analysis"
path = "benches/flow_analysis.rs"
[[bench]]
harness = false
name = "semantic"
path = "benches/semantic.rs"
[[bin]]
name = "brrr"
path = "src/main.rs"
[build-dependencies.prost-build]
version = "0.13"
[build-dependencies.tonic-build]
version = "0.12"
[dependencies.aho-corasick]
version = "1"
[dependencies.anyhow]
version = "1"
[dependencies.clap]
features = ["derive", "env"]
version = "4"
[dependencies.fs2]
version = "0.4"
[dependencies.fxhash]
version = "0.2"
[dependencies.ignore]
version = "0.4"
[dependencies.lru]
version = "0.12"
[dependencies.memchr]
version = "2"
[dependencies.once_cell]
version = "1"
[dependencies.parking_lot]
version = "0.12"
[dependencies.phf]
features = ["macros"]
version = "0.11"
[dependencies.prost]
version = "0.13"
[dependencies.rand]
version = "0.8"
[dependencies.rayon]
version = "1"
[dependencies.regex]
version = "1"
[dependencies.rustc-hash]
version = "2"
[dependencies.serde]
features = ["derive"]
version = "1"
[dependencies.serde_json]
version = "1"
[dependencies.sha2]
version = "0.10"
[dependencies.simdutf8]
version = "0.1"
[dependencies.smallvec]
version = "1.13"
[dependencies.streaming-iterator]
version = "0.1"
[dependencies.tempfile]
version = "3"
[dependencies.thiserror]
version = "2"
[dependencies.tiktoken-rs]
version = "0.9"
[dependencies.tikv-jemallocator]
version = "0.6"
[dependencies.tokio]
features = ["full"]
version = "1"
[dependencies.tokio-stream]
version = "0.1"
[dependencies.toml]
version = "0.8"
[dependencies.tonic]
version = "0.12"
[dependencies.tracing]
version = "0.1"
[dependencies.tracing-subscriber]
features = ["env-filter", "fmt", "json"]
version = "0.3"
[dependencies.tree-sitter]
version = "0.26"
[dependencies.tree-sitter-c]
version = "0.24"
[dependencies.tree-sitter-cpp]
version = "0.23"
[dependencies.tree-sitter-go]
version = "0.25"
[dependencies.tree-sitter-java]
version = "0.23"
[dependencies.tree-sitter-python]
version = "0.25"
[dependencies.tree-sitter-rust]
version = "0.24"
[dependencies.tree-sitter-typescript]
version = "0.23"
[dependencies.usearch]
version = "2"
[dependencies.walkdir]
version = "2"
[dependencies.which]
version = "7"
[dependencies.wide]
version = "0.7"
[dependencies.xxhash-rust]
features = ["xxh3"]
version = "0.8"
[dev-dependencies.criterion]
features = ["html_reports"]
version = "0.5"
[dev-dependencies.pretty_assertions]
version = "1"
[dev-dependencies.rand]
version = "0.8"
[dev-dependencies.tempfile]
version = "3"
[dev-dependencies.tokio-test]
version = "0.4"
[[example]]
name = "test_java"
path = "examples/test_java.rs"
[features]
all-languages = []
default = []
tei = []
[lib]
name = "go_brrr"
path = "src/lib.rs"
[lints.clippy]
expect_used = "warn"
unwrap_used = "warn"
[lints.clippy.nursery]
level = "warn"
priority = -1
[lints.clippy.pedantic]
level = "warn"
priority = -1
[lints.rust]
missing_docs = "allow"
unsafe_code = "warn"
[package]
autobenches = false
autobins = false
autoexamples = false
autolib = false
autotests = false
build = "build.rs"
categories = ["development-tools", "command-line-utilities", "text-processing"]
description = "Token-efficient code analysis for LLMs - Rust implementation"
edition = "2021"
exclude = ["data/", ".brrr/", "rustc-ice-*", "design*.md", "docs/", "apply_bug_fixes.py"]
keywords = ["code-analysis", "llm", "ast", "tree-sitter", "tokenization"]
license = "Apache-2.0"
name = "go-brrr"
readme = "README.md"
repository = "https://github.com/GrigoryEvko/go-brrr"
rust-version = "1.70"
version = "0.1.0"
[profile.dev]
codegen-units = 256
debug = 1
incremental = true
opt-level = 1
[profile.release]
codegen-units = 256
incremental = true
lto = false
opt-level = 1
[profile.release-crate]
codegen-units = 1
inherits = "release"
lto = "fat"
opt-level = 3
panic = "abort"
strip = true
[profile.test]
opt-level = 1