File size: 5,176 Bytes
fdec9f4 2672a30 68e7686 2672a30 fdec9f4 68e7686 2917198 68e7686 fdec9f4 68e7686 fdec9f4 68e7686 fdec9f4 68e7686 fdec9f4 68e7686 fdec9f4 68e7686 fdec9f4 68e7686 fdec9f4 68e7686 fdec9f4 68e7686 fdec9f4 68e7686 2917198 68e7686 fdec9f4 68e7686 fdec9f4 68e7686 2917198 fdec9f4 2917198 68e7686 2917198 fdec9f4 68e7686 fdec9f4 68e7686 fdec9f4 68e7686 2917198 68e7686 2917198 68e7686 fdec9f4 68e7686 fdec9f4 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 | # 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
|