Noureddine RAMDI / FSearch: a lightweight C-based instant file search tool for Linux desktops

Created Mon, 04 May 2026 10:23:01 +0000 Modified Sat, 23 May 2026 20:41:27 +0000

cboxdoerfer/fsearch

FSearch is a Linux desktop file search tool designed to bring the instant, as-you-type search experience familiar from Windows’ Everything Search Engine to Unix-like systems. It addresses a gap in Linux tooling where fast, lightweight file search utilities with advanced features are surprisingly rare.

What fsearch does and how it is built

At its core, FSearch is a desktop application written in C that indexes your filesystem into a searchable database optimized for instant queries. This database-backed approach allows it to return results interactively as you type, including support for advanced search syntax like wildcards and PCRE2 regular expressions.

The application is built on GTK3 with minimal dependencies beyond GLib, PCRE2, and ICU, making it relatively lightweight and portable across Linux distributions. Its architecture emphasizes raw performance and low resource usage rather than tight integration with desktop environments, which is a tradeoff favoring speed and simplicity.

Under the hood, FSearch maintains a dedicated database index of files on your system rather than scanning the filesystem live during each search. This index is updated asynchronously, allowing very fast lookups. However, metadata sorting (e.g., by file type) is slower since some attributes remain unindexed.

Why fsearch is technically interesting

The standout feature of FSearch is its indexing model implemented in C, which achieves near-instant search results even on large filesystems. Unlike command-line tools that scan directories on demand, FSearch pre-builds a database index that it queries in real time. This design closely follows the approach of the Windows Everything Search Engine, which is known for its speed and responsiveness.

The choice of C as the implementation language is significant. It allows fine-grained control over memory and CPU usage, critical for a tool that processes potentially millions of files. The GTK3 UI is minimal but effective, prioritizing responsiveness over flashy desktop integration features.

FSearch supports advanced search features such as PCRE2 regular expressions, wildcards, and complex search syntax, which are not commonly found in Linux GUI search tools. This makes it powerful for users who need precise querying.

However, the project has some architectural limitations. Sorting results by file type or other metadata is slower because these fields are not fully indexed, requiring runtime processing. Also, the index can become stale when files are deleted outside of FSearch’s monitoring, leading to outdated results until the index is refreshed.

The dependency stack is very minimal—just GTK 3.18 or newer, GLib 2.50, glibc or musl, PCRE2, and ICU. This keeps the footprint low but means FSearch doesn’t integrate with file managers or desktop search services that might rely on different APIs or frameworks.

Explore the project

FSearch’s repository is structured around its core C source code and GTK3 interface. The README provides a clear list of dependencies necessary to build and run the app:

Requirements

- GTK 3.18
- GLib 2.50
- glibc 2.19 or musl 1.1.15
- PCRE2 (libpcre2)
- ICU 3.8

To get started, you’ll want to dive into the README for build instructions and configuration options. The codebase is organized with clear separation between the indexing engine and the UI components, which makes it easier to follow and potentially contribute to.

Key files include the index database handling in the src/index directory and the GTK3 UI code in src/ui. The project also includes example configuration files and documentation for the supported search syntax.

Since there are no quickstart commands in the README, compiling and running FSearch requires typical C build toolchains and dependency management. The project is well suited for Linux users comfortable with building software from source.

Verdict

FSearch is a solid choice for Linux users who want a fast, lightweight file search tool with advanced search capabilities. Its C-based database indexing approach delivers the kind of instant search responsiveness often missing in Linux desktop environments.

The tradeoff is that it doesn’t deeply integrate with desktop environments or file managers, and certain operations like sorting by file metadata can be slower due to architectural design choices. Also, users need to be aware of potential stale index entries if files are removed outside the tool.

Overall, FSearch suits advanced users and developers who prioritize raw performance and minimal dependencies over a polished desktop experience. It fills a real need in the Linux ecosystem for a standalone, Everything Search Engine-style utility. If you’re comfortable building from source and want powerful, instant file search without heavy dependencies, it’s worth exploring.


→ GitHub Repo: cboxdoerfer/fsearch ⭐ 4,119 · C