| # FastSeek - macOS Spotlight-style File Search for Windows |
|
|
| A blazing-fast file search tool for Windows that indexes all files using the NTFS Master File Table (MFT) directly, wrapped in a beautiful macOS Spotlight-style UI powered by **Tauri v2**. |
|
|
| ## Architecture |
|
|
| ``` |
| fastsearch-core/ (Rust library β your original engine, unchanged) |
| βββ src/index/search.rs (Fuzzy search with rayon parallelism) |
| βββ src/index/store.rs (In-memory arena index + LZ4 cache) |
| βββ src/mft/reader.rs (Direct NTFS MFT parsing) |
| βββ src/mft/watcher.rs (USN journal live updates) |
| βββ src/utils/drives.rs (NTFS drive detection) |
| |
| fastsearch-tauri/ (Tauri v2 desktop app) |
| βββ src-tauri/ |
| β βββ src/main.rs (Backend: tray, global shortcuts, window mgmt) |
| β βββ capabilities/ (Tauri v2 permissions system) |
| β βββ tauri.conf.json (v2 config) |
| β βββ Cargo.toml (v2 deps + plugins) |
| β βββ icons/ (Generated by create_icons.py) |
| βββ ui/ |
| βββ index.html (Spotlight-style layout) |
| βββ styles.css (Frosted glass, dark theme, animations) |
| βββ app.js (Instant search, keyboard nav) |
| ``` |
|
|
| ## Why Tauri v2? |
|
|
| - **Keep your Rust core intact** β MFT scanning, indexing, and search logic stays in Rust with zero changes |
| - **Native Windows integration** β System tray, global shortcuts (Win+Space), native window management |
| - **Beautiful UI** β HTML/CSS/JS frontend with macOS Spotlight aesthetics: blur effects, smooth animations |
| - **Small footprint** β ~5-10MB vs Electron's 100MB+ |
| - **Capabilities-based security** β Tauri v2's permission model |
|
|
| ## Why NOT C#? |
|
|
| - Your core is already Rust with deep Windows kernel integration (NTFS MFT parsing, USN journal watching) |
| - Porting to C# would require rewriting all `unsafe` Win32 interop, MFT parsing, USN journal code |
| - Rust β C# FFI is complex and loses performance advantages |
| - Tauri gives you a better UI with less effort while keeping your Rust engine |
|
|
| ## Features |
|
|
| - β‘ **Instant search** β Indexes millions of files in seconds via NTFS MFT |
| - π **Fuzzy matching** with ranking (exact β starts with β contains) |
| - π **Live index updates** via USN journal watching |
| - π¨ **Spotlight-style UI** with blur backdrop, smooth animations |
| - β¨οΈ **Global shortcuts**: `Win+Space` to open, `ESC` to close |
| - π±οΈ **Navigation**: `β` `β` arrows, `Enter` to open, `Ctrl+Enter` to reveal in Explorer |
| - πΎ **Smart caching** β Compressed LZ4 cache with delta catch-up on restart |
| - π« **Directory exclusions** via UI |
| - π **System tray** β Menu with Show/Quit, left-click to toggle |
|
|
| ## Prerequisites |
|
|
| - **Rust** toolchain (stable, β₯ 1.77.2) β [rustup.rs](https://rustup.rs/) |
| - **Python 3** (to generate placeholder icons) |
| - **Windows 10/11** (NTFS MFT scanning won't work on Linux/Mac) |
| - **Administrator** privileges (required for MFT direct access) |
| - **Microsoft Edge WebView2** (usually pre-installed on Win10/11) |
|
|
| ## Clone & Build |
|
|
| ```bash |
| # 1. Clone |
| git clone https://huggingface.co/anshdadhich/finder |
| cd finder |
| |
| # 2. Generate placeholder icons (or replace with real ones later) |
| cd fastsearch-tauri |
| python create_icons.py |
| |
| # 3. Build & run in dev mode (admin PowerShell) |
| cargo tauri dev |
| |
| # 4. Build release installer |
| cargo tauri build |
| ``` |
|
|
| Release artifacts: |
| ``` |
| src-tauri/target/release/fastsearch-tauri.exe (standalone) |
| src-tauri/target/release/bundle/msi/*.msi (Windows installer) |
| src-tauri/target/release/bundle/nsis/*.exe (NSIS installer) |
| ``` |
|
|
| > **Important**: Run PowerShell **as Administrator** before `cargo tauri dev`. The MFT scanner requires elevated privileges. |
|
|
| ## Usage |
|
|
| | Shortcut | Action | |
| |----------|--------| |
| | `Win + Space` | Open/close search overlay | |
| | `ESC` | Close search | |
| | `β` / `β` | Navigate results | |
| | `Enter` | Open file/folder | |
| | `Ctrl + Enter` | Reveal in File Explorer | |
|
|
| ## Troubleshooting |
|
|
| | Error | Fix | |
| |-------|-----| |
| | `icons/icon.ico not found; required for generating a Windows Resource` | Run `python create_icons.py` to generate placeholder icons | |
| | `"identifier" is a required property` | Your `cargo tauri` is v1. Upgrade: `cargo install tauri-cli --force` | |
| | `No NTFS drives found` | Run as Administrator | |
| | `devUrl is not a uri` | Already fixed β pull latest from repo | |
|
|
| ## Tech Stack |
|
|
| | Layer | Technology | |
| |-------|-----------| |
| | Core engine | Rust (`windows` crate, MFT direct read, USN journals, LZ4, rayon) | |
| | Desktop framework | Tauri v2 | |
| | Global shortcuts | `tauri-plugin-global-shortcut` v2 | |
| | Shell/open | `tauri-plugin-shell` v2 | |
| | Frontend | Plain HTML/CSS/JS (no build step needed) | |
| | UI style | macOS Spotlight-inspired (frosted glass, dark theme) | |
|
|
| ## Original Engine |
|
|
| The core file search engine (`fastsearch-core/`) was written by **anshdadhich** and uses: |
| - Direct NTFS MFT reading for lightning-fast indexing |
| - USN (Update Sequence Number) journal for live file system tracking |
| - In-memory arena-based index with binary search lookups |
| - LZ4-compressed persistent cache |
| - Rayon's parallel iterators for search |
|
|