372 releases (72 breaking)
Uses new Rust 2024
| new 0.107.0 | May 21, 2026 |
|---|---|
| 0.105.13 | May 14, 2026 |
| 0.96.9 | Mar 31, 2026 |
| 0.55.1 | Dec 29, 2025 |
| 0.47.6 | Nov 30, 2025 |
#678 in Parser implementations
137 downloads per month
Used in 3 crates
(via vtcode-core)
375KB
9K
SLoC
vtcode-indexer
Workspace-friendly code indexer extracted from VT Code.
vtcode-indexer offers a lightweight alternative to heavyweight
search/indexing stacks. It recursively walks a workspace, computes
per-file hashes, and stores metadata in Markdown-friendly summaries
so changes remain easy to audit in git.
Features
- Recursive
.gitignore-aware workspace walking via theignorecrate - Per-file content hashing for change detection
- Markdown-backed snapshot persistence (
index.md) - Pluggable storage and traversal filter traits
Public entrypoints
SimpleIndexer— main indexer; walk, hash, query, and persist file metadataSimpleIndexerConfig— builder for workspace root, index directory, and exclusion rulesFileIndex— per-file metadata record (path, hash, size, timestamps)IndexStoragetrait — persistence backend (default:MarkdownIndexStorage)TraversalFiltertrait — directory/file filtering hook (default:ConfigTraversalFilter)
Usage
use vtcode_indexer::SimpleIndexer;
let mut indexer = SimpleIndexer::new("/path/to/workspace".into());
indexer.init()?;
indexer.index_directory(std::path::Path::new("/path/to/workspace"))?;
let rust_files = indexer.find_files(r"\.rs$")?;
println!("Found {} Rust files", rust_files.len());
API reference
Dependencies
~19–33MB
~516K SLoC