10 releases
Uses new Rust 2024
| 0.7.4 | Dec 25, 2025 |
|---|---|
| 0.7.3 | Dec 19, 2025 |
| 0.7.1 | Nov 25, 2025 |
| 0.6.4 | Nov 23, 2025 |
| 0.6.0 | Oct 16, 2025 |
#916 in Filesystem
14,902 downloads per month
Used in 5 crates
(3 directly)
470KB
10K
SLoC
A debouncer for [notify] that is optimized for ease of use.
- Only emits a single
Renameevent if the renameFromandToevents can be matched - Merges multiple
Renameevents - Takes
Renameevents into account and updates paths for events that occurred before the rename event, but which haven't been emitted, yet - Optionally keeps track of the file system IDs all files and stitches rename events together (macOS FS Events, Windows)
- Emits only one
Removeevent when deleting a directory (inotify) - Doesn't emit duplicate create events
- Doesn't emit
Modifyevents after aCreateevent
Installation
[dependencies]
notify-debouncer-full = "0.5.0"
In case you want to select specific features of notify, specify notify as dependency explicitly in your dependencies. Otherwise you can just use the re-export of notify from debouncer-full.
notify-debouncer-full = "0.5.0"
notify = { version = "..", features = [".."] }
Examples
use notify_debouncer_full::{notify::*, new_debouncer, DebounceEventResult};
// Select recommended watcher for debouncer.
// Using a callback here, could also be a channel.
let mut debouncer = new_debouncer(Duration::from_secs(2), None, |result: DebounceEventResult| {
match result {
Ok(events) => events.iter().for_each(|event| println!("{event:?}")),
Err(errors) => errors.iter().for_each(|error| println!("{error:?}")),
}
}).unwrap();
// Add a path to be watched. All files and directories at that path and
// below will be monitored for changes.
debouncer.watch(".", WatchMode::recursive()).unwrap();
Features
The following crate features can be turned on or off in your cargo dependency config:
serdepassed down to notify-types, off by defaultweb-timepassed down to notify-types, off by defaultcrossbeam-channelpassed down to notify, off by defaultflumepassed down to notify, off by defaultmacos_fseventpassed down to notify, off by defaultmacos_kqueuepassed down to notify, off by defaultserialization-compat-6passed down to notify, off by default
Caveats
As all file events are sourced from notify, the known problems section applies here too.
Notify Debouncer Full
A debouncer for notify that is optimized for ease of use.
- Only emits a single
Renameevent if the renameFromandToevents can be matched - Merges multiple
Renameevents - Takes
Renameevents into account and updates paths for events that occurred before the rename event, but which haven't been emitted, yet - Optionally keeps track of the file system IDs all files and stitches rename events together (FSevents, Windows)
- Emits only one
Removeevent when deleting a directory (inotify) - Doesn't emit duplicate create events
- Doesn't emit
Modifyevents after aCreateevent
Features
-
crossbeam-channelpassed down to notify, off by default -
flumepassed down to notify, off by default -
serialization-compat-6passed down to notify, off by default
Dependencies
~5–9.5MB
~92K SLoC