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.