finder / README.md
anshdadhich's picture
Upload README.md
2917198 verified
# 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