winwatch watches a directory (optionally a whole subtree) with a single overlapped ReadDirectoryChangesW operation and delivers :added/:modified/ :removed/:renamed events with absolute UTF-8 paths. Kernel buffer overflow is surfaced as an explicit :rescan event (never silently dropped) and a dying watch (root deleted, network loss) as a terminal :gone event. Blocking pulls release the GVL and are interrupt-safe; under the winloop fiber scheduler the watcher parks fibers on the loop's completion port with zero extra threads. Public API: Winwatch.watch(path, recursive:, filter:, buffer_size:, normalize_names:) with a block form, Watcher#take/#each/#close, and a frozen Winwatch::Event struct. Windows MSVC (mswin) Ruby only.
Required Ruby Version
>= 3.0
Authors
ned
Versions
- 0.1.0 June 28, 2026 (30 KB)