Hey HN! I built allsee because I wanted a file & web search tool that works the same way on Windows, macOS, and Linux — and doesn't send anything off your machine and it's fully customizable.
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.
tzlatanov•1h ago
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.