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

  1. 0.1.0 June 28, 2026 (30 KB)

Pushed by

SHA 256 checksum