Download Latest Version fswatch v. 1.22.0 source code.zip (418.7 kB) Google Add to Preferred Sources
Home / 1.21.0
Name Modified Size InfoDownloads / Week
Parent folder
fswatch-1.21.0-libfswatch-doxygen-html.tar.gz 2026-05-09 393.0 kB
fswatch-1.21.0.pdf 2026-05-09 388.0 kB
fswatch-1.21.0.tar.gz 2026-05-09 868.2 kB
fswatch v. 1.21.0 source code.tar.gz 2026-05-09 249.0 kB
fswatch v. 1.21.0 source code.zip 2026-05-09 415.1 kB
README.md 2026-05-09 3.9 kB
Totals: 6 Items   2.3 MB 1

What's New in fswatch v. 1.21.0:

fswatch v. 1.21.0 introduces the following features and bug fixes:

  • CLI, Issues 104 and 273: Add --filter-mode=conjunctive. In this mode, include filters define the candidate set and exclude filters subtract from it: a path is accepted when it matches an include filter, or when no include filters are specified, and does not match any exclude filter.

  • CLI, Issue 151: Add --prune to prevent recursive traversal from descending into matching directories where the selected monitor performs traversal in fswatch or libfswatch. This is distinct from --exclude: --exclude filters emitted events, while --prune prevents recursive descent into matching subtrees.

  • Compatibility: Legacy include/exclude filter behavior remains the default. In legacy mode, include filters may still override exclude filters.

  • Issue 305: Install CMake package configuration files for libfswatch so CMake consumers can use find_package(libfswatch CONFIG).

  • Bug fix, Issue 247: Keep explicit root paths eligible for monitor setup even when path filters would reject the root path itself, allowing matching children to be discovered and reported.

  • Issue 238: Document the BSD/macOS xargs replacement-string length caveat when processing fswatch output with xargs -I.

  • Add filtering regression coverage for legacy and conjunctive filter modes, root-path eligibility, and traversal pruning.

libfswatch v. 1.21.0 introduces the following features and bug fixes:

  • API, Issues 104 and 273: Add conjunctive path filter evaluation mode. In this mode, inclusion filters define the candidate set and exclusion filters subtract from it: a path is accepted when it matches an inclusion filter, or when no inclusion filters are specified, and does not match any exclusion filter.

  • API, Issue 151: Add traversal prune filters so recursive monitors can skip matching directories before scanning or watching their descendants. Prune filters are separate from normal path filters: normal exclude filters reject emitted events, while prune filters prevent recursive descent where the monitor performs library-side traversal.

  • API: Add C API support for filter mode selection and prune filters.

  • Compatibility: Legacy filter behavior remains the default.

  • Compatibility: The public C++ fsw::monitor layout changed. Existing compiled C++ clients should be rebuilt against this release. The libfswatch libtool release version is 15:0:0.

  • Bug fix, Issue 247: Keep explicit root paths eligible for monitor setup even when path filters would reject the root path itself, allowing matching children to remain discoverable.

  • Issue 305: Install CMake package configuration files and exported targets for libfswatch so CMake consumers can use find_package(libfswatch CONFIG).

  • Add regression coverage for filter modes, root-path eligibility, traversal pruning, and the new C API pruning entry point.

Upgrade and Compatibility Notes

  • Legacy include/exclude filter behavior remains the default. Use --filter-mode=conjunctive to opt into include-as-candidate-set semantics.

  • --exclude and --prune serve different purposes. --exclude filters emitted events. --prune prevents recursive traversal from descending into matching directories where the selected monitor performs library-side traversal.

  • Explicit command-line root paths remain eligible for monitoring even when path filters would reject the root path itself.

  • libfswatch adds C API entry points for filter mode selection and prune filters.

  • The public C++ fsw::monitor layout changed. C++ clients should be rebuilt against this release. The libtool release version is 15:0:0.

Source: README.md, updated 2026-05-09