async-watcher

Crates.ioasync-watcher
lib.rsasync-watcher
version0.3.0
sourcesrc
created_at2023-06-24 22:30:05.856626
updated_at2024-05-17 00:56:06.00216
descriptionTrigger events when files or directories change
homepagehttps://github.com/justinrubek/async-watcher
repositoryhttps://github.com/justinrubek/async-watcher
max_upload_size
id899149
size14,020
Justin Rubek (justinrubek)

documentation

README

async-watcher

github crates.io docs.rs

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.

cli

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"
Commit count: 40

cargo fmt