notify
Cross-platform filesystem notification library
8.2.0
142M downloads/mo
#638 most downloaded on crates.io
notify-rs/notify
What this package is like to depend on
Last release 3 months ago
02 May 2026
Release timing varies
gaps range from 2 weeks to 10 months
Nearly every release is documented
notes for 59 of 60 stable releases
2 versions withdrawn
withdrawn after publishing
12 years old
83 releases · first in 2014
4 releases in the last 12 months
see the full history below
Release timeline
83 releases · Dec 2014 to May 2026Releases
latest 60 of 83-
9.0.0-rc.402 May 2026 pre-releaseRelease notes
Open source →notify 9.0.0-rc.4 (2026-05-02)
- CHANGE: preserve watched path representation in
Event.pathsandWatcher::watched_paths; relative watch paths now produce relative event paths consistently across backends [#453] [#740] - FIX: [kqueue] stop reporting arbitrary existing child paths for non-recursive directory write events [#644]
- FIX: replace an existing watch when
watchis called again for the same path, avoiding duplicate FSEvent paths and leaked Windows watch handles [#708] - DOCS: define
Watcher::watchreplacement behavior for an existing backend-resolved path [#708]
Release notes
Open source →- CHANGE: preserve watched path representation in
Event.pathsandWatcher::watched_paths; relative watch paths now produce relative event paths consistently across backends [#453] [#740] - FIX: [kqueue] stop reporting arbitrary existing child paths for non-recursive directory write events [#644]
- FIX: replace an existing watch when
watchis called again for the same path, avoiding duplicate FSEvent paths and leaked Windows watch handles [#708] - DOCS: define
Watcher::watchreplacement behavior for an existing backend-resolved path [#708]
- CHANGE: preserve watched path representation in
-
9.0.0-rc.315 Apr 2026 pre-releaseRelease notes
Open source →notify 9.0.0-rc.3 (2026-04-16)
- CHANGE: raise MSRV to 1.88
- FEATURE: add
Watcher::watched_pathsto list active watches as(PathBuf, RecursiveMode)pairs across supported backends - FIX: [windows] normalize emitted event paths to follow the watched path separator style and trim leading separators; add
Config::with_windows_path_separator_stylefor explicit control #375 - FIX: [windows] make
unwatch()wait until the watch is fully removed so later filesystem changes do not leak events #730 - FIX: [macOS] annotate FSEvents clone-related events with
info = "is: clone"#465 - FIX: avoid panicking in
unwatchwhen internal mutexes are poisoned - CHANGE: add
#[must_use]annotations to builder, constructor, and getter-style APIs such asConfig,PathOp, andError
Release notes
Open source →- CHANGE: raise MSRV to 1.88
- FEATURE: add
Watcher::watched_pathsto list active watches as(PathBuf, RecursiveMode)pairs across supported backends - FIX: [windows] normalize emitted event paths to follow the watched path separator style and trim leading separators; add
Config::with_windows_path_separator_stylefor explicit control #375 - FIX: [windows] make
unwatch()wait until the watch is fully removed so later filesystem changes do not leak events #730 - FIX: [macOS] annotate FSEvents clone-related events with
info = "is: clone"#465 - FIX: avoid panicking in
unwatchwhen internal mutexes are poisoned - CHANGE: add
#[must_use]annotations to builder, constructor, and getter-style APIs such asConfig,PathOp, andError
-
9.0.0-rc.214 Feb 2026 pre-releaseRelease notes
Open source →notify 9.0.0-rc.2 (2026-02-14)
- FEATURE: remove
Watcher::paths_mutand introduceupdate_paths#705 - FEATURE: impl
EventHandlerforfutures::channel::mpsc::UnboundedSenderandtokio::sync::mpsc::UnboundedSenderbehind thefuturesandtokiofeature flags #767 - FIX: [macOS] prevent handler panicking in the FSEvents callback panics #790
- FIX: [macOS] prevent panicking when path contains non UTF-8 chars #790
- FIX: [linux] fix a TOCTOU issue when adding a watcher #792
- FIX: [linux] surface inotify
UNMOUNTevents to users and clean up affected watches #627 - FIX: [macOS] remove
FSEventsPurgeEventsForDeviceUpToEventIdcall #795
Release notes
Open source →- FEATURE: remove
Watcher::paths_mutand introduceupdate_paths#705 - FEATURE: impl
EventHandlerforfutures::channel::mpsc::UnboundedSenderandtokio::sync::mpsc::UnboundedSenderbehind thefuturesandtokiofeature flags #767 - FIX: [macOS] prevent handler panicking in the FSEvents callback panics #790
- FIX: [macOS] prevent panicking when path contains non UTF-8 chars #790
- FIX: [linux] fix a TOCTOU issue when adding a watcher #792
- FIX: [linux] surface inotify
UNMOUNTevents to users and clean up affected watches #627 - FIX: [macOS] remove
FSEventsPurgeEventsForDeviceUpToEventIdcall #795
- FEATURE: remove
-
9.0.0-rc.125 Jan 2026 pre-releaseRelease notes
Open source →notify 9.0.0-rc.1 (2026-01-25)
Important
The MSRV policy has been changed since this release.
Check out README for details.- CHANGE: raise MSRV to 1.85 breaking
- CHANGE: [macOS] replace
fsevent-syswithobjc2-core-foundationandobjc2-core-services#726 - FEATURE: add
EventKindMaskfor filtering filesystem events #736 - FIX: Fix the bug that
FsEventWatchercrashes when dealing with empty path #718 - FIX: Fix the bug that
INotifyWatcherkeeps watching deleted paths #720 - FIX: Fixed ordering where
FsEventWatcheremittedRemoveevents non-terminally #747 - FIX: [macOS] throw
FsEventWatcherstream start error properly #733
Release notes
Open source →[!IMPORTANT] The MSRV policy has been changed since this release. Check out README for details.
- CHANGE: raise MSRV to 1.85 breaking
- CHANGE: [macOS] replace
fsevent-syswithobjc2-core-foundationandobjc2-core-services#726 - FEATURE: add
EventKindMaskfor filtering filesystem events #736 - FIX: Fix the bug that
FsEventWatchercrashes when dealing with empty path #718 - FIX: Fix the bug that
INotifyWatcherkeeps watching deleted paths #720 - FIX: Fixed ordering where
FsEventWatcheremittedRemoveevents non-terminally #747 - FIX: [macOS] throw
FsEventWatcherstream start error properly #733
-
8.2.003 Aug 2025Release notes
Open source →notify 8.2.0 (2025-08-03)
- FEATURE: notify user if inotify's
max_user_watcheshas been reached #698 - FIX:
INotifyWatcherignore events with unknown watch descriptors (instead ofEventMask::Q_OVERFLOW) #700
debouncer-full 0.6.0 (2025-08-03)
- FEATURE: allow
FileIdCachetrait implementations to choose ownership of the returned file-ids #664 - FEATURE: added support for the
flumecrate #680 - FIX: skip all
Modifyevents right after aCreateevent, unless it's a rename event #701
debouncer-mini 0.7.0 (2025-08-03)
file-id 0.2.3 (2025-08-03)
- CHANGE: implement
AsRef<FileId>forFileId#664
Full Changelog: notify-8.1.0...notify-8.2.0
- FEATURE: notify user if inotify's
-
8.1.003 Jul 2025Release notes
Open source →- FEATURE: added support for the
flumecrate - FIX: kqueue-backend: do not double unwatch top-level directory when recursively unwatching [#683]
- FIX: Return the crate error
PathNotFoundinstead bubbling up the std::io error [#685] - FIX: fix server hangs when trashing folders on Windows [#674]
- FEATURE: added support for the
-
8.0.010 Jan 2025 -
7.0.025 Oct 2024Release notes
Open source →- CHANGE: raise MSRV to 1.72 #569 #610 breaking
- CHANGE: move event type to notify-types crate #559
- CHANGE: flatten serialization of events and use camelCase #558
- CHANGE: remove internal use of crossbeam channels #569 #610
- CHANGE: rename feature
crossbeamtocrossbeam-channeland disable it by default #610 breaking - CHANGE: upgrade mio to 1.0 #623
- CHANGE: add log statements #499
- FIX: prevent UB with illegal instruction for the windows backend #604 #607
- FIX: on Linux report deleted directories correctly #545
- FIX: on Linux report access open events #612
- FEATURE: enable kqueue on iOS #533
- MISC: various minor doc updates and fixes #535 #536 #543 #565 #592 #595
- MISC: update inotify to 0.10 #547
-
6.1.121 Aug 2023Release notes
Open source →- CHANGE: remove serde binary experiment opt-out after it got removed #530
-
6.1.020 Aug 2023Release notes
Open source →- CHANGE: opt-out of the serde binary experiment by restricting it to < 1.0.172 #528
- CHANGE: license changed to only CC0-1.0 #520
- CHANGE: use logging #499
- CHANGE: upgrade windows-sys to 0.48 #479
- CHANGE: bump filetime to 0.2.22 #521
- FEATURE: support manual polling of PollWatcher and disabling automatic polling #524
- FEATURE: support listening to the initial pollwatcher file scan #507
- FIX: fix moved folders not being watched on linux #498
- FIX: fixup potential future double free on windows #517
- FIX: require bitflags only on macos and upgrade the crate #505
- DOCS: add more known issues, typos and cleanup examples #523 #502 #522
-
6.0.115 Jun 2023Release notes
Open source →- DOCS: fix swapped debouncer-full / -mini links in the readme/crates.io 4be6bde
-
6.0.017 May 2023 -
5.2.017 May 2023 -
5.1.028 Jan 2023 -
5.0.030 Aug 2022Release notes
Open source →For a list of changes when upgrading from v4 see UPGRADING_V4_TO_V5.md.
Differences to 5.0.0-pre.16:
- FIX: update minimum walkdir version to 2.2.2 #432
- CHANGE: add
need_rescanfunction toEvent, allowing easier detection when a rescan is required #435 - FIX: debouncer-mini: change crossbeam feature to
crossbeam, to allow passthrough with notify re-exports #429 - DOCS: improve v5-to-v5 upgrade docs #431
- DOCS: file back v4 changelog into main #437
- DOCS: cleanups and link fixes
-
5.0.0-pre.1614 Aug 2022 pre-releaseRelease notes
Open source →- CHANGE: require config for watcher creation and unify config #426
- CHANGE: fsevent: use RenameMode::Any for renaming events #371
- FEATURE: re-add debouncer as new crate and fixup CI #286
- FEATURE: allow disabling crossbeam-channel dependency #425
- FIX: PollWatcher panic after delete-and-recreate #406
- MISC: rework pollwatcher internally #409
- DOCS: cleanup all docs towards v5 #395
-
5.0.0-pre.1501 May 2022 pre-release -
5.0.0-pre.1413 Mar 2022 pre-releaseRelease notes
Open source →- CHANGE: upgrade mio to 0.8 #386
- CHANGE: PollWatcher: unify signature of new and with_delay #360
- CHANGE: emit EventKind::Modify on kqueue write event #370
- CHANGE: use RenameMode::Any for renaming events #371
- CHANGE: name all threads spawned by notify #383
- FEATURE: Add Watcher::kind() #364
- FEATURE: Add more Debug/Copy trait impls #377 #378
- FIX: Fix selection of RecommendedWatcher for macos_kqueue feature #362
- FIX: Turn possible panic into an error in FSEvents backend when file is deleted rapidly #369
- FIX: lqueue: emit Create Events and watch all files in a directory #372
- FIX: inotify: don't panic on shutdown #373
-
5.0.0-pre.1310 Sep 2021 pre-release -
5.0.0-pre.1217 Aug 2021 pre-release -
5.0.0-pre.1123 Jul 2021 pre-releaseRelease notes
Open source →- FEATURE: Add
Kqueuebackend for use on BSD #335 - CHANGE: Change EventFn to take FnMut #333
- CHANGE: Make
Watcherobject safe #336 - FIX: Join thread in
fsevenon shutdown #337 - FIX: Only check for ENOSPC on inotify_add_watch in
inotify#330 - FIX: Free context when stream is deallocated in
fsevent#329 - DOCS: Fix missing comma in docs #340
- FEATURE: Add
-
5.0.0-pre.1004 Jun 2021 pre-release -
5.0.0-pre.926 May 2021 pre-release -
5.0.0-pre.812 May 2021 pre-release -
5.0.0-pre.715 Apr 2021 pre-release -
5.0.0-pre.620 Feb 2021 pre-release -
5.0.0-pre.528 Jan 2021 pre-release -
5.0.0-pre.431 Oct 2020 pre-release -
5.0.0-pre.322 Jun 2020 pre-release -
5.0.0-pre.207 Jan 2020 pre-releaseRelease notes
Open source →- (Temporary): Remove event debouncing.
- (Temporary): Remove tests.
- CHANGE: Rewrite immediate events to use new system.
- CHANGE: Remove
Senders from watcher API in favour ofEventFn#214 - DEPS: Update inotify to 0.8. #234
- DEPS: Update crossbeam-channel to 0.4.
- DEPS: [macOS] Update fsevent to 2.0.1 and fsevent-sys to 3.0.0.
-
5.0.0-pre.129 Jun 2019 pre-releaseRelease notes
Open source →(no changes, just a new release because the old one failed to publish properly)
-
5.0.0-pre.022 Jun 2019 pre-release withdrawnRelease notes
Open source →- yanked 2019-06-30
- RUSTC: Push the minimum version to 1.36.0 #201
- RUSTC: Switch the crate to Rust 2018.
- FIX: Implement
Syncfor PollWatcher to support FreeBSD. #197 - FEATURE: Add new runtime configuration system.
- FEATURE: Add
Ongoingevents (optional, configured at runtime). #146, #183 - FEATURE: Bring in new event system from
nextbranch. #187 - FEATURE: Allow multiple watchers to send to the same channel.
2a035c86 - CHANGE: Switch to crossbeam channel. #160
- CHANGE: Rename
ChmodtoMetadata. #179, #180, previously #112, #161 - CHANGE: Remove
DebouncedEventevent classification. #187 - DEPS: [Linux] Upgrade inotify to 0.7. #184
- DEPS: [macOS] Upgrade fsevent to 0.4. #195
- DEPS: Upgrade filetime to 0.2.6.
- META: Rename
v4-legacybranch tomain, to further clarify status and prepare for a breaking release. - DOCS: Change
v5toNext Generation Notifyto allow for a breaking release. - DOCS: Add rust-analyzer to Readme showcase.
- DOCS: Add github issue / PR templates and funding.
-
4.0.1826 Jun 2024Nothing published for this version
-
4.0.1713 May 2021Release notes
Open source →- FIX: Don't crash on macos when creating & deleting folders in rapid succession #303
-
4.0.1615 Apr 2021 -
4.0.1507 Jan 2020Release notes
Open source →- DEPS: Update inotify to 0.7.
- DEPS(DEV): Replace tempdir with tempfile since tempdir is deprecated.
- DEPS: Update winapi to 0.3 and remove kernel32-sys. #232
-
4.0.1417 Oct 2019 -
4.0.1301 Sep 2019 -
4.0.1222 May 2019 -
4.0.1107 May 2019 -
4.0.1006 Mar 2019Release notes
Open source → -
4.0.909 Feb 2019Release notes
Open source →- FIX: High CPU usage in some conditions when using debouncing. #177, #178, coming from rust-analyzer/#556
-
4.0.806 Feb 2019 -
4.0.723 Jan 2019Release notes
Open source →- DOCS: Document unexpected behaviour around watching a tree root. #165, #166
- DOCS: Remove v2 documentation.
8310b2cc - TESTS: Change how tests are skipped.
0b4c8400 - DOCS: Add timetrack to Readme showcase. #167
- META: Change commit message style: commits are now prefixed by a
[topic]. - FIX: Make sure debounced watcher terminates. #170
- FIX: [Linux] Remove thread wake-up on timeout (introduced in 4.0.5 by error). #174
- FIX: Restore compatibility with Rust before 1.30.0.
eab75118 - META: Enforce compatibility with Rust 1.26.1 via CI.
50924cd6 - META: Add maintenance status badge.
ecd686ba - DOCS: Freeze v4 branch (2018-10-05)
8310b2cc— and subsequently unfreeze it. (2019-01-19)20c40f99,c00da47c
-
4.0.629 Aug 2018 -
4.0.529 Aug 2018 withdrawnRelease notes
Open source →- DEPS: Update winapi (0.3), mio (0.6), inotify (0.6), filetime (0.2), bitflags (1.0). #162
- SEMVER BREAK: The bitflags upgrade introduced a breaking change to the API.
-
4.0.405 Aug 2018Release notes
Open source →- Derive various traits for
RecursiveMode. #148 - DOCS: Add docket to Readme showcase. #154
- DOCS: Rename OS X to macOS. #156
- FIX: [FreeBSD / Poll] Release the lock while the thread sleeps (was causing random hangs). #159
- Derive various traits for
-
4.0.326 Nov 2017 -
4.0.203 Nov 2017Release notes
Open source →- FIX: Suppress events for files which have been moved and deleted if a new file in the original location is created quickly when using the debounced interface (eg. while safe-saving files) #129
-
4.0.125 Mar 2017Release notes
Open source →- FIX: [Linux] Detect moves if two connected move events are split between two mio polls
-
4.0.007 Feb 2017Release notes
Open source →- CHANGE: [Linux] Update dependency to inotify 0.3.0.
- FIX: [macOS]
.watch()panics on macOS when the target doesn't exist. #105
-
3.0.105 Dec 2016Release notes
Open source → -
3.0.030 Oct 2016Release notes
Open source →- FIX: [Windows] Fix watching files on Windows using relative paths. #90
- FEATURE: Add debounced event notification interface. #63
- FEATURE: [Polling] Implement
CREATEandDELETEevents for PollWatcher. #88 - FEATURE: [Polling] Add
::with_delay_ms()constructor. #88 - FIX: [macOS] Report
ITEM_CHANGE_OWNERasCHMODevents. #93 - FIX: [Linux] Emit
CLOSE_WRITEevents. #93 - FEATURE: Allow recursion mode to be changed. #60, #61 breaking
- FEATURE: Track move events using a cookie.
- FEATURE: [macOS] Return an error when trying to unwatch non-existing file or directory.
- CHANGE: [Linux] Remove
IGNOREDevent. breaking - CHANGE: [Linux] Provide absolute paths even if the watch was created with a relative path.
-
2.6.304 Aug 2016 -
2.6.205 Jul 2016 -
2.6.108 Jun 2016Release notes
Open source → -
2.6.005 Jun 2016 -
2.5.527 Mar 2016 -
2.5.423 Jan 2016 -
2.5.325 Dec 2015