← Back
vicinae — Linux Indexed File Search
Nov 2025 – Present
Repository
C++ GTK sqlite3 fanotify
Problem
Linux lacked a fast, indexed desktop file search tool comparable to Everything on Windows. Existing solutions either didn’t index content or couldn’t handle regex patterns efficiently.
Approach
Built a search service that maintains a sqlite3 trigram index of file contents, enabling sub-second full-text search across the entire filesystem. Added a custom regex-to-trigram converter for fast regex searching.
Technical Details
- Trigram indexing: sqlite3 FTS5 with trigram tokenizer for fast substring matching
- RegEx support: Custom regex-stripper extracts trigram candidates from regex patterns, uses the index for initial filtering, then applies the full regex to candidates
- Real-time indexing: Rewrote the file observer to use Linux fanotify for filesystem event monitoring
- GTK frontend: Native Linux desktop application with a clean search interface
Results
- Near-instant search results across large filesystems
- Regex support without sacrificing index performance
- Low memory footprint through incremental indexing