Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Go
  3. notify

notify

MITGov0.9.3

A cross-platform file system event notification library for Go that unifies inotify, FSEvents, kqueue, and ReadDirectoryChangesW.

GitHubGitHub
929 stars136 forks0 contributors

What is notify?

Notify is a Go library that provides cross-platform file system event notifications by abstracting native OS APIs like inotify (Linux), FSEvents (macOS), kqueue (BSD), and ReadDirectoryChangesW (Windows). It solves the problem of writing portable file monitoring code that works consistently across different operating systems without requiring platform-specific implementations.

Target Audience

Go developers who need to monitor file system changes in applications that must run on multiple operating systems, such as build tools, sync utilities, or development servers.

Value Proposition

Developers choose Notify because it offers a single, unified API for file system event handling across all major platforms, eliminating the need to write and maintain separate code for each OS. Its use of native OS APIs ensures high performance and reliability.

Overview

File system event notification library on steroids.

Use Cases

Best For

  • Building cross-platform file synchronization tools
  • Creating development servers that reload on file changes
  • Implementing real-time file monitoring for backup applications
  • Writing build tools that react to source code modifications
  • Developing utilities that watch configuration files for updates
  • Monitoring log files for new entries in multi-OS environments

Not Ideal For

  • Projects exclusively targeting a single OS where native APIs offer more control and less overhead
  • Applications requiring real-time monitoring of non-file system events like network sockets or processes
  • Embedded or resource-constrained environments where the cross-platform abstraction adds unnecessary complexity
  • Teams needing a zero-dependency solution for minimalistic or security-critical codebases

Pros & Cons

Pros

Cross-Platform Unified API

Abstracts inotify, FSEvents, kqueue, and ReadDirectoryChangesW into a single interface, enabling portable code without OS-specific implementations, as highlighted in the GitHub description.

High Performance Native Integration

Leverages OS-native file system event mechanisms for efficient, low-latency notifications, ensuring reliability in performance-critical applications like sync tools.

Recursive Directory Watching

Supports monitoring entire directory trees, which is essential for build tools and development servers that react to changes in nested files.

Event Type Filtering

Allows filtering specific events like create, write, rename, or remove, reducing callback noise and improving application efficiency.

Cons

Platform-Specific Quirks

Underlying OS APIs have inherent differences, which can lead to inconsistent behavior across platforms (e.g., event ordering or support for network drives), requiring thorough cross-platform testing.

Dependency Overhead

Adds an external library dependency, which might be undesirable for projects aiming for minimalism or those with strict security review processes.

Limited to File System

Only handles file system events, not other system notifications (e.g., process or network changes), potentially necessitating additional libraries for broader monitoring needs.

Frequently Asked Questions

Quick Stats

Stars929
Forks136
Contributors0
Open Issues43
Last commit2 years ago
CreatedSince 2014

Tags

#event-driven#filesystem-monitoring#go-library#notifications#filesystem-library#fsevents#filesystem-events#golang#cross-platform#inotify#kqueue

Built With

G
Go

Included in

Go169.1k
Auto-fetched 5 hours ago

Related Projects

pdfcpupdfcpu

A PDF processor written in Go.

Stars8,595
Forks607
Last commit11 hours ago
aferoafero

The Universal Filesystem Abstraction for Go

Stars6,638
Forks561
Last commit23 days ago
gdugdu

Fast disk usage analyzer with console interface written in Go

Stars5,605
Forks202
Last commit3 days ago
go-wkhtmltopdfgo-wkhtmltopdf

Golang commandline wrapper for wkhtmltopdf

Stars1,175
Forks158
Last commit6 months ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub