Skip to content

Latest commit

 

History

History
66 lines (47 loc) · 2.03 KB

File metadata and controls

66 lines (47 loc) · 2.03 KB

Contributing

Build from Source

Rust 1.85+ required (see Cargo.toml rust-version for exact MSRV).

git clone https://github.com/lemon07r/Vera.git
cd Vera
cargo build

Run Tests

cargo test --workspace       # all tests
cargo test -p vera-core      # core crate only

Lint & Format

cargo clippy --workspace -- -D warnings
cargo fmt --all -- --check

Project Layout

Crate What it does
vera-core Parsing, indexing, storage, embedding, retrieval pipeline
vera-cli CLI interface (clap)
vera-mcp MCP server (JSON-RPC over stdio)
eval Benchmark harness and evaluation tasks

The core engine lives in vera-core. Most changes happen here:

  • parsing/: tree-sitter grammars, AST chunking, symbol extraction
  • embedding/: embedding providers (API + local ONNX)
  • retrieval/: BM25, vector search, RRF fusion, reranking
  • storage/: SQLite metadata, Tantivy BM25 index, sqlite-vec vectors
  • indexing/: index build and incremental update pipeline

For how the pipeline fits together, see docs/how-it-works.md.

Adding a Language

See docs/architecture.md for the step-by-step checklist. The full language list is at docs/supported-languages.md.

Conventions

  • Error handling: anyhow::Result in CLI code, thiserror for typed errors in vera-core
  • Async: tokio runtime for I/O-bound work
  • Tests: #[cfg(test)] modules at the bottom of source files, tempfile for filesystem tests
  • Commits: type(scope): description: e.g. feat(lang): add HTML support, fix(retrieval): handle empty query

Running Benchmarks

bash eval/setup-corpus.sh                          # clone benchmark repos
cargo build --release
cargo run --release --bin vera-eval -- run          # full suite
cargo run --release --bin vera-eval -- run --json-only  # JSON output only

Benchmark details: docs/benchmarks.md.