A few things I'm happy with under the hood:
- Search doesn't scan the full index on every keystroke. It uses a trigram index to narrow candidates, then FST sets (via the `fst` crate) for prefix and fuzzy search, and RoaringBitmap indexes for extension/type filters. Filtering by `ext:rs` is a single bitwise AND. - The index snapshots to disk via memory-mapped I/O so cold startup loads in under a second. A write-ahead log handles crash recovery. - Filesystem changes (create, rename, delete) are picked up in real-time via the `notify` crate — no manual rescans needed.
The search syntax supports substring, prefix (`mod*`), fuzzy (`confg~`), regex (`/main\d+/`), and filters (`ext:rs,toml`, `type:dir`, `-ext:log`).
It has a template system, where you can get creative and customize it any way you want, it doesn't enforce anything on the user.
It's built with Rust + Tauri v2 + Svelte 5. MIT licensed.