| Crates.io | async-watcher |
| lib.rs | async-watcher |
| version | 0.3.0 |
| created_at | 2023-06-24 22:30:05.856626+00 |
| updated_at | 2024-05-17 00:56:06.00216+00 |
| description | Trigger events when files or directories change |
| homepage | https://github.com/justinrubek/async-watcher |
| repository | https://github.com/justinrubek/async-watcher |
| max_upload_size | |
| id | 899149 |
| size | 14,020 |
This is a small library that uses notify to implement a file watcher that is debounced.
The debouncing helps ensure you don't get too many events on a single file leading to extra work.
The original use case of this was to watch a directory and rebuild when there are changes.
Without debouncing, a single file could trigger multiple rebuilds.
Instead, async-watcher can be used to trigger events after a specific time threshold.
Notify takes care of all of the work, but the debouncing traits weren't async.
async-watcher leverages async-trait to provide an async interface for creating watchers.
See the examples for usage.
Included is a command line application that can be used to execute a command when notified of changes.
The files to watch are specified with a glob pattern as the first argument.
Subsequent arguments are the command to run and its arguments.
The program is exposed as a nix flake package called awatch.
example usage:
awatch './{crates,Cargo.toml,Cargo.lock}' echo "crates modified"