| Name | Modified | Size | Downloads / 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
--pruneto prevent recursive traversal from descending into matching directories where the selected monitor performs traversal infswatchorlibfswatch. This is distinct from--exclude:--excludefilters emitted events, while--pruneprevents 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
libfswatchso CMake consumers can usefind_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
xargsreplacement-string length caveat when processingfswatchoutput withxargs -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::monitorlayout changed. Existing compiled C++ clients should be rebuilt against this release. Thelibfswatchlibtool release version is15: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
libfswatchso CMake consumers can usefind_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=conjunctiveto opt into include-as-candidate-set semantics. -
--excludeand--pruneserve different purposes.--excludefilters emitted events.--pruneprevents 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.
-
libfswatchadds C API entry points for filter mode selection and prune filters. -
The public C++
fsw::monitorlayout changed. C++ clients should be rebuilt against this release. The libtool release version is15:0:0.