NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #642 most downloaded on crates.io
Cross-platform filesystem notification library
Last release 1 months ago
30 Aug 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
84 releases · first in 2014
FEATURE: [FreeBSD] select native inotify automatically when building on FreeBSD 14.5+ and kqueue otherwise. The freebsd_inotify feature enables inotif
freebsd_inotify feature enables inotify when cross-compiling for FreeBSD 14.5+.inotify to 0.11.4 for native FreeBSD supportConfig::with_fsevent_latency to configure FSEvents stream latency #930EINVAL or WatchNotFound logsReadDirectoryChangesW read-start failures #935ReadDirectoryChangesW discards change details [#964]Watcher::watch_with to pass per-path settings, and WatchPathConfig::with_dereference_symlinks to watch a symbolic link itself instead of its destination, which also makes a dangling link watchable #255One column per quarter.
freebsd_inotify feature enables inotify when cross-compiling for FreeBSD 14.5+.inotify to 0.11.4 for native FreeBSD supportConfig::with_fsevent_latency to configure FSEvents stream latency #930EINVAL or WatchNotFound logsReadDirectoryChangesW read-start failures #935ReadDirectoryChangesW discards change details [#964]Watcher::watch_with to pass per-path settings, and WatchPathConfig::with_dereference_symlinks to watch a symbolic link itself instead of its destination, which also makes a dangling link watchable #255CHANGE: preserve watched path representation in Event.paths and Watcher::watched_paths ; relative watch paths now produce relative event paths consist
Event.paths and Watcher::watched_paths; relative watch paths now produce relative event paths consistently across backends [#453] [#740]watch is called again for the same path, avoiding duplicate FSEvent paths and leaked Windows watch handles [#708]Watcher::watch replacement behavior for an existing backend-resolved path [#708]FEATURE: add Watcher::watched_paths to list active watches as (PathBuf, RecursiveMode) pairs across supported backends
Watcher::watched_paths to list active watches as (PathBuf, RecursiveMode) pairs across supported backendsConfig::with_windows_path_separator_style for explicit control #375unwatch() wait until the watch is fully removed so later filesystem changes do not leak events #730info = "is: clone" #465unwatch when internal mutexes are poisoned#[must_use] annotations to builder, constructor, and getter-style APIs such as Config, PathOp, and ErrorFEATURE: remove Watcher::paths_mut and introduce update_paths #705
Watcher::paths_mut and introduce update_paths #705EventHandler for futures::channel::mpsc::UnboundedSender and tokio::sync::mpsc::UnboundedSender behind the futures and tokio feature flags #767UNMOUNT events to users and clean up affected watches #627FSEventsPurgeEventsForDeviceUpToEventId call #795Important The MSRV policy has been changed since this release. Check out README for details.
Important
The MSRV policy has been changed since this release.
Check out README for details.
fsevent-sys with objc2-core-foundation and objc2-core-services #726EventKindMask for filtering filesystem events #736FsEventWatcher crashes when dealing with empty path #718INotifyWatcher keeps watching deleted paths #720FsEventWatcher emitted Remove events non-terminally #747FsEventWatcher stream start error properly #733FEATURE: notify user if inotify's max_user_watches has been reached #698
max_user_watches has been reached #698INotifyWatcher ignore events with unknown watch descriptors (instead of EventMask::Q_OVERFLOW) #700FileIdCache trait implementations to choose ownership of the returned file-ids #664flume crate #680Modify events right after a Create event, unless it's a rename event #701AsRef<FileId> for FileId #664Full Changelog: notify-8.1.0...notify-8.2.0
FEATURE: added support for the `flume` crate
flume cratePathNotFound instead bubbling up the std::io error [#685]CHANGE: update notify-types to version 2.0.0
CHANGE: raise MSRV to 1.72 [#569] [#610] breaking
crossbeam to crossbeam-channel and disable it by default #610 breakingCHANGE: remove serde binary experiment opt-out after it got removed [#530]
CHANGE: opt-out of the serde binary experiment by restricting it to < 1.0.172 [#528]
DOCS: fix swapped debouncer-full / -mini links in the readme/crates.io [4be6bde]
CHANGE: files and directories moved into a watch folder on Linux will now be reported as rename to events instead of create events [#480]
CHANGE: implement Copy for EventKind and ModifyKind [#481]
Copy for EventKind and ModifyKind #481CHANGE: switch from winapi to windows-sys [#457]
For a list of changes when upgrading from v4 see UPGRADING_V4_TO_V5.md.
For a list of changes when upgrading from v4 see UPGRADING_V4_TO_V5.md.
Differences to 5.0.0-pre.16:
need_rescan function to Event, allowing easier detection when a rescan is required #435crossbeam, to allow passthrough with notify re-exports #429CHANGE: require config for watcher creation and unify config [#426]
CHANGE: raise MSRV to 1.56! [#396] and [#402]
CHANGE: upgrade mio to 0.8 [#386]
Fix: Add path information to inotify and kqueue watch/unwatch errors [#354]
CHANGE: Move creation of watcher into trait [#345]
FEATURE: Add Kqueue backend for use on BSD [#335]
Kqueue backend for use on BSD #335Watcher object safe #336fseven on shutdown #337inotify #330fsevent #329FIX: Make StreamContextInfo Send to fix soundness issue [#325]
Send to fix soundness issue #325DEPS: Upgrade fsevent-sys dependency to 4.0 [#322]
HOTFIX: Fix breaking change in fsevent-sys in minor version destroying builds [#316]
FIX: Display proper error message when reaching inotify limits on linux [#285]
FIX: Handle interrupted system call errors from mio [#281]
RUSTC: Push the minimum version to 1.47.0 [#280]
CHANGE: Avoid stating the watched path for non-recursive watches with inotify [#256]
DEPS: Removed unused chashmap dependency [#242]
(Temporary): Remove event debouncing.
Senders from watcher API in favour of EventFn #214_(no changes, just a new release because the old one failed to publish properly)_
(no changes, just a new release because the old one failed to publish properly)
RUSTC: Push the minimum version to 1.36.0 [#201]
Sync for PollWatcher to support FreeBSD. #197Ongoing events (optional, configured at runtime). #146, #183next branch. #1872a035c86Chmod to Metadata. #179, #180, previously #112, #161DebouncedEvent event classification. #187v4-legacy branch to main, to further clarify status and prepare for a breaking release.v5 to Next Generation Notify to allow for a breaking release.Nothing published for this version
FIX: Don't crash on macos when creating & deleting folders in rapid succession [#303]
FIX: Report events promptly on Linux, even when many occur in rapid succession. [#268]
DEPS(DEV): Replace tempdir with tempfile since tempdir is deprecated.
FIX: Fix deadlock in debouncer. [#210]
FIX: Undo filetime pin. [#202], [22e40f5e]
FIX: Implement Sync for PollWatcher to support FreeBSD. [#198]
DEPS: \[macOS\] Upgrade fsevent to 0.4. [#196]
FIX: Panic caused by a clock race. [#182]
FIX: High CPU usage in some conditions when using debouncing. [#177], [#178], coming from [rust-analyzer/#556]
DOCS: Mention hotwatch as alternative API. [#175], [34775f26]
DOCS: Document unexpected behaviour around watching a tree root. [#165], [#166]
8310b2cc0b4c8400[topic].eab7511850924cd6ecd686ba8310b2cc — and subsequently unfreeze it. (2019-01-19) 20c40f99, c00da47cFIX: Add some consts to restore semver compatibility. [6d4f1ab9]
6d4f1ab9SEMVER BREAK: The bitflags upgrade introduced a breaking change to the API.
Derive various traits for RecursiveMode. [#148]
RecursiveMode. #148FIX: \[macOS\] Concurrency-related FSEvent crash. [#132]
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 in
FIX: \[Linux\] Detect moves if two connected move events are split between two mio polls
CHANGE: \[Linux\] Update dependency to inotify 0.3.0.
.watch() panics on macOS when the target doesn't exist. #105FIX: \[macOS\] Fix multiple panics in debounce module related to move events. [#99], [#100], [#101]
FIX: \[Windows\] Fix watching files on Windows using relative paths. [#90]
CREATE and DELETE events for PollWatcher. #88::with_delay_ms() constructor. #88ITEM_CHANGE_OWNER as CHMOD events. #93CLOSE_WRITE events. #93IGNORED event. breakingFIX: \[macOS\] Bump fsevents version. [#91]
fsevents version. #91FEATURE: \[macOS\] Implement Send and Sync for FsWatcher. [#82]
FIX: \[Linux\] Only register _directories_ for watching. [#74]
FEATURE: Add Result alias. [#72]
DOCS: Explain an FSEvent limitation. [#51]
META: Remove all * specifiers to comply with Crates.io policy. [9f44843f]
* specifiers to comply with Crates.io policy. 9f44843fYour coding agent can read these notes before it upgrades. Set up the MCP server →