notify-rs/notify

🔭 Cross-platform filesystem notification library for Rust.

View on GitHub ↗Jump to charts ↓Open shareable report →

Summary Information

Updated 1 hour ago
Type:Library / SDKCategory(s):Core & Utility LibrariesLanguages & Runtimes
Added to GitGenius on September 20th, 2026
Created on December 11th, 2014
Open Issues & Pull Requests: 88 (+0)
GitHub issues: Enabled
Number of forks: 288
Total Stargazers: 3,455 (+0)
Total Subscribers: 26 (+0)

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 21
New in 7 days: 0
Closed in 7 days: 2
Avg open age: 931 days
Stale 30+ days: 17
Stale 90+ days: 13

Recent activity

Opened in 7 days: 0
Closed in 7 days: 2
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • A-enhancement (8)
  • A-question (7)
  • A-bug (6)
  • os-mac (5)
  • os-windows (3)
  • B-doc (2)
  • Z-needs info (2)
  • os-linux (2)

Detailed Description

Notify is a cross-platform filesystem notification library for Rust.

The library solves the problem of detecting filesystem changes across different operating systems by providing a unified API that abstracts away platform-specific details. It uses the native notification mechanism for each platform: inotify on Linux and Android, FSEvents or kqueue on macOS, ReadDirectoryChangesW on Windows, kqueue on BSD variants, and a polling fallback available on all platforms. The library also provides debouncer implementations to handle rapid successive events and a file ID utility for tracking files across renames.

Developers should choose this tool when building applications that need to monitor filesystem changes in a portable way. It suits projects ranging from development tools to editors and file watchers that must work reliably across Linux, macOS, Windows, and BSD systems. The library is used by established projects including Rust tooling, terminal emulators, and text editors. For those concerned about Rust version compatibility, the tool maintains support for the current stable release and the previous two stable releases, with MSRV bumps documented in release notes when they occur.

The project maintains active engagement with its user base through comprehensive documentation including upgrade guides between major versions. Development follows a deliberate approach to API stability, with careful consideration given to breaking changes and their justification in release notes. The maintainers prioritize platform coverage and correctness, ensuring that each supported operating system receives appropriate implementation rather than relying on a single approach across all platforms.