# 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