Crates.io | async-watcher |
lib.rs | async-watcher |
version | 0.3.0 |
source | src |
created_at | 2023-06-24 22:30:05.856626 |
updated_at | 2024-05-17 00:56:06.00216 |
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"