# fsnotify

Go library providing cross-platform filesystem notifications across Linux (inotify), macOS (kqueue, FSEvents), Windows (ReadDirectoryChangesW), BSD (kqueue), and illumos. Sits underneath most Go CLI tools, dev servers, configuration-reload mechanisms, and infrastructure controllers that need to react to file changes. GitHub: ~10.7k stars, 969 forks, **321k dependent projects** as of May 2026 — high enough in the dependent-count distribution to count as low-level critical infrastructure for the Go ecosystem.

Repo: <https://github.com/fsnotify/fsnotify>

Maintained primarily by Martin Tournoij ([[arp242]]). Historically had commit access handed out broadly to drive-by contributors who landed fixes; this caught up with the project in May 2026 — see [[fsnotify-maintainer-dispute]].

## Notable events

- **2026-05** — Maintainer-access dispute centered on [[mattn]]'s recent maintenance activity and a direct-to-main `FUNDING.yml` change. Read from outside as a possible takeover; not a takeover. Documented in [[fsnotify-maintainer-dispute]].
- **2026-05-04** — v1.10.1 fixes an inotify edge case where sibling watches sharing a path prefix could be removed or renamed incorrectly.
- **2026-04-04** — Crossed the "12 months without a release" threshold that triggers most automated unmaintained-project scanners.

## Forks worth tracking

- `gofsnotify/fsnotify` — separate implementation started by [[mattn]] after losing access to the original org. Kubernetes' "fsnotify - Healthy or not?" issue lists it as something to monitor.

## See also

- [[supply-chain-security]]
- [[maintainer-governance-ambiguity]]
- [[fsnotify-maintainer-dispute]]
