Rune is a high-performance, keyboard-first desktop search utility for Linux. Designed to be lightweight, instant, and visually premium, it brings the speed of terminal-based search tools like fzf to a beautiful, translucent, glassmorphic desktop interface.
Rune achieves sub-5ms search latency and crawls over 1,000,000 files in under 10 seconds, all while keeping its persistent memory footprint under 360MB RAM.
Rune uses a decoupled, performance-optimized multi-process architecture:
┌──────────────────────────────────────────┐
│ Tauri v2 Desktop Shell │
│ (translucent, borderless GTK window) │
└──────┬────────────────────────────▲──────┘
│ │
[Spawns / Manages Sidecar] [IPC / HTTP API]
│ │
▼ │
┌──────────────────────────────────────────┐ │
│ Go Backend Indexer Daemon │────────┘
│ (runed) │
└──────┬────────────────────────────┬──────┘
│ │
[Crawls Tree] [Listens to Events]
│ │
▼ ▼
┌──────────────────┐ ┌──────────────────┐
│ Bounded Crawler │ │ inotify Monitor │
└────────┬─────────┘ └────────┬─────────┘
│ │
└─────────────┬─────────────┘
│ [Writes Serialized Mutations]
▼
┌─────────────────────┐
│ LMDB Database │
│ (Memory-Mapped I/O) │
└─────────────────────┘
Ctrl+Space), focus-loss (blur) auto-hiding, transparent window compositing, and native OS file launching (xdg-open).runed) that runs isolated from the UI, executing lightning-fast concurrent directory walks, real-time filesystem tracking, query ranking, and database persistence.To scale smoothly up to 1,000,000 files within a tight 500MB RAM budget, Rune implements a custom indexing architecture over the Lightning Memory-Mapped Database (LMDB):
uint32 IDs.Rune prioritizes visual search-as-you-type feedback by optimizing the hot query path:
Traditional directory-indexing pipelines suffer from consistency gaps if files are created/modified while the initial crawler is running. Rune solves this with a queue-and-replay startup sequence:
fsnotify (inotify-based) recursive monitor across the directory tree..cargo, .var, .local, .cache) to save watched handles and prevent inotify exhaustion.go-lmdb), fsnotifypnpmgit clone https://github.com/RealNarcissus/Rune.git
cd Rune
pnpm install
cd backend
go build -o bin/runed cmd/runed/main.go
# Copy compiled sidecar binary to Tauri targets folder
cp bin/runed ../src-tauri/binaries/runed-x86_64-unknown-linux-gnu
cd ..
pnpm tauri dev
Ctrl+Space globally.ArrowUp / ArrowDown to cycle search results, Enter to open files natively, and Escape to close the overlay.Distributed under the Permissive MIT License. See LICENSE for more details.