github cboxdoerfer/fsearch 0.3-beta1
Beta Release: 0.3-beta1

pre-release6 hours ago

After a long time in development, the 0.3 release is finally just around the corner. The main feature in this version is support for filesystem monitoring.

Up until version 0.2, FSearch was a relatively simple application under the hood: the in-memory database was built once at startup and remained unchanged afterward. This made both the data structures and the search logic straightforward, since everything operated on a static dataset.

With the introduction of filesystem monitoring, this became much more complex. The application is now much more dynamic, with the database being updated continuously as files are created, modified, moved, or deleted. This brings a number of new challenges: keeping the index in sync with the filesystem in real time, handling bursts of changes efficiently, and ensuring that searches remain fast and consistent even while updates are happening in the background.

While this adds quite a bit of complexity internally, the goal is that it remains almost invisible to users.

Here are the major changes:

  • The database has been almost completely rewritten. When you launch version 0.3 (beta) for the first time, it will start empty, so you’ll need to re-add your folders. To keep the codebase manageable, backwards compatibility with previous database versions has unfortunately been dropped.
  • Filesystem monitoring can now be enabled per folder via the preferences dialog by checking the “Monitor” column.
  • Monitoring is only available on platforms and filesystems that support fanotify or inotify and even though fanotify works great for huge directory trees, I don't recommend to monitor the root directory itself.
  • In testing, the database handled tens of thousands of changes per second without issues, but more feedback here would be appreciated.
  • Database exclusions have been improved: files and folders can now be excluded using fixed patterns, wildcards, or regular expressions.
  • Memory usage slightly increased in order to store handles for fs monitoring

Don't miss a new fsearch release

NewReleases is sending notifications on new releases.