maproom 0.1.0

Semantic code search powered by embeddings and SQLite
Documentation
[package]
name = "maproom"
version = "0.1.0"
edition = "2021"
description = "Semantic code search powered by embeddings and SQLite"
license = "MIT"
repository = "https://github.com/manifoldlogic/crewchief"
homepage = "https://github.com/manifoldlogic/crewchief/tree/main/crates/maproom"
documentation = "https://docs.rs/maproom"
readme = "README.md"
keywords = ["code-search", "embeddings", "semantic-search", "sqlite", "tree-sitter"]
categories = ["command-line-utilities", "development-tools", "text-processing"]
rust-version = "1.85"
exclude = ["tests/", "benches/", "docs/", "!docs/cli-help-after.md", "examples/", ".github/", ".crewchief/"]

[dependencies]
anyhow = "1.0.100"
atty = "0.2"
blake3 = "1.5"
bytes = "1"
chrono = { version = "0.4.42", features = ["serde"] }
clap = { version = "4.5", features = ["derive"] }
dotenvy = "0.15"
ignore = "0.4.24"
once_cell = "1"
priority-queue = "2.1"
regex = "1"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
serde_yaml = "0.9"
thiserror = "2"
tokio = { version = "1", features = ["rt-multi-thread", "macros", "fs", "process", "time", "sync", "signal", "io-std", "io-util"] }
tokio-util = { version = "0.7", features = ["codec"] }
tracing = "0.1"
tracing-subscriber = { version = "0.3.20", features = ["env-filter", "fmt"] }

# Monitoring and metrics
# Updated to 0.14 to resolve protobuf vulnerability (RUSTSEC-2024-0437)
prometheus = { version = "0.14", features = ["process"] }
lazy_static = "1.4"
base64ct = "1.8.0"
globset = "0.4.18"

# BRWATCH: File watching and signal handling for automatic branch switch detection
notify = { version = "6", default-features = false, features = ["macos_kqueue"] }  # Cross-platform file system watcher for detecting .git/HEAD changes
ctrlc = "3.2"  # Graceful shutdown handling for Ctrl+C signals

humantime = "2.3"
config = "0.14"
dirs = "5"  # Cross-platform home directory resolution for SQLite default path

# SQLite database (the only backend)
rusqlite = { version = "0.29.0", features = ["bundled", "chrono"] }
r2d2 = "0.8"
r2d2_sqlite = "0.22"

# Parsing (Tree-sitter)
tree-sitter = "0.22"
tree-sitter-typescript = "0.21"
tree-sitter-javascript = "0.21"
tree-sitter-python = "0.21"
tree-sitter-rust = "0.21"
tree-sitter-go = "0.21"
tree-sitter-ruby = "0.21"
tree-sitter-c = "0.21.4"
tree-sitter-c-sharp = "0.21.3"
tree-sitter-java = "0.21.0"
tree-sitter-cpp = "0.21"
tree-sitter-md = "0.2"

# Embedding service dependencies
reqwest = { version = "0.12", features = ["json"] }
lru = "0.12"

# OpenSSL with vendored feature for cross-platform builds
# The vendored feature statically links OpenSSL, eliminating system dependency
# This ensures builds work with `cross` tool in GitHub Actions (BINPKG-1903)
openssl = { version = "0.10", features = ["vendored"] }

# A/B Testing dependencies
uuid = { version = "1", features = ["v4", "serde"] }

# Concurrent session management (MULTICN-2002)
dashmap = "6"

# Token counting for context assembly
tiktoken-rs = "0.5"

# Multi-provider trait abstraction (MPEMBED)
# Used for EmbeddingProvider trait to support OpenAI, Ollama, Google Vertex AI
async-trait = "0.1"

# Google Vertex AI authentication (MPEMBED Phase 3)
# Service account authentication for google-cloud-aiplatform
# Using gcp_auth for reliable OAuth2 access token generation
gcp_auth = "0.12"

# Cache key hashing
sha2 = "0.10"

# Parallel processing
rayon = "1.10"
crossbeam = "0.8"
futures = "0.3"

# Unix socket server (MULTICN-2003)
fs2 = "0.4"     # File locking (flock) for PID file
users = "0.11"  # UID lookup for socket path


[build-dependencies]
cc = "1.0"

[[bin]]
name = "maproom"
path = "src/main.rs"

[lib]
name = "maproom"
path = "src/lib.rs"

[package.metadata.sqlx]
migrate = true

[dependencies.puffin]
version = "0.19"
optional = true

[dev-dependencies]
futures = "0.3"
criterion = { version = "0.5", features = ["async_tokio"] }
tempfile = "3"
uuid = { version = "1", features = ["v4"] }
serial_test = "3"
wiremock = "0.6"
proptest = "1.4"
sysinfo = "0.32"
assert_cmd = "2.0"
predicates = "3.0"

[target.'cfg(unix)'.dev-dependencies]
nix = { version = "0.29", features = ["signal"] }

[features]
profiling = ["puffin"]


[[bench]]
name = "fusion_benchmark"
harness = false

[[bench]]
name = "index_tuning_benchmark"
harness = false

[[bench]]
name = "search_benchmark"
harness = false

[[bench]]
name = "importance_scoring"
harness = false

[[bench]]
name = "context_assembly_bench"
harness = false

[[bench]]
name = "python_parser_bench"
harness = false

[[bench]]
name = "indexing"
harness = false

[[bench]]
name = "memory"
harness = false

[[bench]]
name = "concurrent_operations_bench"
harness = false

[[bench]]
name = "parser_bench"
harness = false

[[bench]]
name = "memory_optimization_bench"
harness = false

[[bench]]
name = "multi_provider_performance"
harness = false

[[bench]]
name = "sqlite_benchmark"
harness = false

[[bench]]
name = "ollama_parallel_bench"
harness = false

[[bench]]
name = "dedup_bench"
harness = false

[[bench]]
name = "confidence_overhead"
harness = false

[[bench]]
name = "search_relationships"
harness = false

[[bench]]
name = "graph_quality_benchmark"
harness = false

[[bench]]
name = "c_parser_bench"
harness = false