DeepSearch
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ βββββββββββββββββββββββββββββββββ****βββββββββββββββββββββββββββββββββββββββββββββββ βββββββββββββββββββββββββββ****ββββββββββββββββββββββββββββββββββββββββββ ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ βββββββββββββββββββββββββββ******ββββββββββββββββββββββββββββ*ββββββββββ*βββ*β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
DeepSearch is a high-performance, cross-platform file indexing and search utiliβ¦
DeepSearch
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ βββββββββββββββββββββββββββββββββ****βββββββββββββββββββββββββββββββββββββββββββββββ βββββββββββββββββββββββββββ****ββββββββββββββββββββββββββββββββββββββββββ ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ βββββββββββββββββββββββββββ******ββββββββββββββββββββββββββββ*ββββββββββ*βββ*β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
DeepSearch is a high-performance, cross-platform file indexing and search utility developed in Rust. It builds a fast, searchable index of your local folders and network shared directories, allowing for near-instantaneous file name lookups.
Features
- Modern & Responsive GUI: A clean and intuitive graphical user interface built with
eframe(egui). - Light & Dark Modes: Toggle between light and dark themes to suit your preference.
- Persistent Indexing: Uses a local
redbdatabase to store file indexes, allowing for fast subsequent searches without needing to re-scan entire directories. - Incremental Updates: A "Rescan" feature efficiently rebuilds the index for a location in the background. Once complete, it atomically swaps the old index for the new one, ensuring data consistency and high performance.
- Optimized for Performance: Leverages Rustβs concurrency model (
rayon) for both indexing and searching to maximize throughput and keep the UI responsive. - Intelligent Search: File name search is insensitive to case and diacritics (e.g.,
thanhwill matchThΓ nh). - Live Search: Perform direct, on-the-fly searches within specified folders, including content search.
- Content Search: Search within the actual content of various file types (PDF, DOCX, XLSX, plain text).
- Cross-Platform: Runs on Windows, macOS, and Linux.
Interface Preview
The application is organized into two main tabs:
- Indexing Tab: For adding new folders to the index and managing existing ones (rescan, delete).
- Search Tab: For performing searches across one or more indexed locations.
A status bar at the bottom provides feedback on current operations and shows a progress bar for long-running tasks.
Usage Guide
1. Indexing a New Folder
This is the first step for any new directory you want to make searchable.
- Launch the application.
- On the Indexing tab, find the "Initial Scan" section.
- Click "Browse..." to pick a folder, or paste the full path directly into the "New Folder Path" text field (e.g.,
C:\Users\YourName\Documentsor\\server\share). - Click "Start Initial Scan".
- The status bar will show the scanning progress. Once complete, the new location will appear in the "Manage Indexed Locations" list.
2. Searching the Index
Once one or more directories have been indexed, you can search them.
- Switch to the Search tab.
- In the left-hand "Search In:" panel, check the boxes for the locations you want to search within.
- Type your query into the "Keyword" text field.
- Click the "Search" button or press
Enter. - Results will appear instantly in the right-hand panel.
- You can right-click a search result to open the file or its containing folder.
3. Updating an Index (Rescan)
If the contents of an indexed directory have changed, run a Rescan to efficiently update the index.
- On the Indexing tab, find the location you want to update in the "Manage Indexed Locations" list.
- Click the "π Rescan" button next to its path.
- The application will perform a full, efficient rescan of the directory in the background. Once finished, the new index will instantly and safely replace the old one.
4. Deleting an Index
To remove a location and its index from the database:
- On the Indexing tab, find the location in the "Manage Indexed Locations" list.
- Click the "π Delete" button next to its path and confirm the action.
Building and Packaging
To compile the application from source, you will need the Rust toolchain installed.
First, build the release binary:
cargo build --release
After the build is complete, follow the platform-specific instructions below to create a distributable package.
Windows
No further steps are required. The build process automatically embeds the application icon. The final executable can be found at target/release/DeepSearch.exe.
Linux
The project includes a script to install the application and integrate it with the desktop environment.
- Navigate to the packaging directory:
cd packaging/linux
- Run the installation script with root privileges:
sudo ./install.sh
This will copy the binary, icon, and .desktop file to the appropriate system directories. DeepSearch will then appear in your application menu.
macOS
The project includes a script to create a standard .app bundle.
- From the project root directory, run the packaging script:
./packaging/macos/package_macos.sh
- The script will create a
DeepSearch.appbundle inside thetarget/release/directory. - You can then drag
DeepSearch.appto your/Applicationsfolder.
Development Roadmap
Planned enhancements for future versions:
- Search within file contents (content indexing).
- Support for regular expressions (regex) and wildcards in search queries.
- Exporting search results to CSV or text files.
- Advanced settings for configuring exclude patterns.
- Saving search scopes as profiles.
Contribution and Contact
For feedback, suggestions, or bug reports, please:
- Submit an issue on the projectβs GitHub page, or
- Contact the author directly.
DeepSearch is built with performance, reliability, and usability in mind β for developers, analysts, and IT professionals.