$ cargo watch

 Release License Travis Code of Conduct

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.

Usage

  1. Build with $ cargo build.
  2. Place in your $PATH.
  3. Invoke using $ cargo watch.

You may also be able to use cargo install.

Details

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).

Etc

Created by Félix Saparelli and awesome contributors.