Cargo Watch watches over your project's source for changes, and runs Cargo commands when they occur.
If you've used [nodemon], [gulp], [guard], [watchman], or similar others, it will probably feel familiar.
$ cargo build
.$ cargo watch
.You may also be able to use cargo install
.
By default, it runs build
then test
. You can easily override this, though:
$ cargo watch [command...]
A few examples:
$ cargo watch doc
$ cargo watch test bench
$ cargo watch "build --release"
$ cargo watch "build --release" "test test_"
It pairs well with [dybuk], the compiler output prettifier:
$ cargo watch check |& dybuk
Just like any Cargo command, it will run from any project subdirectory.
Cargo Watch is currently hard-coded to not compile things more often than every two seconds, to avoid overusage. If you wish to help implementing a better solution, see #2.
It will ignore everything that's not a Rust file, and files that start with
either a dot (.foo.rs
) or a tilde (~foo.rs
).
It uses the [notify] crate for file events, so it supports all platforms, some more efficiently than others (if you use the big three — Linux, Mac, Windows — you will be fine).
Created by Félix Saparelli and awesome contributors.