Development & tests
Upstream lives at github.com/3ravens/Grimoire.
This page summarizes the README sections that matter for local hacking.
Prerequisites
npm install and npm run tauri dev assume Node.js, Rust, and Tauri OS prerequisites — plus native libraries (libzim, WebKitGTK, vcpkg on Windows, and so on). Follow:
Quick start
npm install
npm run tauri dev
Release bundles (after prerequisites):
npm run tauri:build # under src-tauri/target/release/bundle/
Tests
| Area | Command | Notes |
|---|---|---|
| Rust | From src-tauri/: cargo test | Library + src-tauri/tests/ integration tests |
| Rust (ignored) | From src-tauri/: cargo test -- --ignored | Optional heavier tests (e.g. LanceDB smoke) |
| JavaScript | From repo root: npm test | Vitest (src/**/*.test.js) |
| Watch | From repo root: npm run test:watch | While editing JS |
Optional: some offline / perf-oriented flows use env flags such as PERF_OFFLINE=1 in the app test suite — see upstream tests when debugging those paths.
Wikipedia indexing benchmark (dev)
The README describes a developer workflow:
-
In dev builds, open Settings → Developer, provide a ZIM path and optional max-entry cap, then run Run indexing benchmark and copy JSON results.
-
Alternatively invoke the debug command
benchmark_wikipedia_indexingfrom code with the same parameters. -
Baseline file
benchmarks/wikipedia_index_baseline.jsonuses schema v2. -
Compare runs with:
python scripts/compare_wiki_benchmark.py --current path/to/current_benchmark.json
python scripts/compare_wiki_benchmark.py --current path/to/current_benchmark.json --verbose
The script exits with code 1 when regression thresholds fail.
Stack (from README)
| Layer | Technology |
|---|---|
| UI | Svelte + Vite |
| Desktop shell | Tauri |
| Backend | Rust |
| Database | SQLite (sqlx) |
| Vector search | LanceDB |
| LLM runtime | Ollama |
License
GPL v3.
Commercial licensing language is quoted in the app README License section. Read there for the canonical text.