← 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