rustywatch 0.2.2

Live reloading for any programing languages
Documentation

RustyWatch

GitHub Actions Workflow Status GitHub Actions Workflow Status Crates.io Total Downloads Crates.io License docs.rs Crates.io Size GitHub Repo stars GitHub Tag Crates.io Version Codecov

asciicast

Live reloading inspired by Go Air build with Rust.

Features

  • Universal live reloading support for all programming languages
  • Real-time binary reloading
  • Monorepo development support
  • Run multiple projects with a single command
  • Optimized and efficient build process
  • Automatic detection and monitoring of new directories
  • Enhanced, colorful, and detailed log output

Install

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

cargo install rustywatch

Usage

To start the project with rustywatch just need rustywatch.yaml for configuration, and run the CLI in root your project.

  • Config

Default configuration named rustywatch.yaml with yaml extension, and please put the config in your root directory, for reference please check at bellow:

# define workspaces, rustywatch can be handled multi project at the same time.
workspaces:
  # first project binary apps
  - dir: './golang-project' # define path directory
    cmd: 'cd ./golang-project;go build main.go' # define command to build binary
    bin_path: './golang-projec/main' # define path for binary location
    bin_arg: # define arguments
     - server
    ignore:
     - '.git'
  # second project binary apps
  - dir: './rust-project/src/'
    cmd: 'cd ./rust-project/src/;cargo build'
    bin_path: './rust-project/target/debug/rust-project'
  # third project not binary apps
  - dir: './nodejs-project'
    cmd: 'cd nodejs-project;npm run dev'
  # more ...

Example structure directories

# list directories
ls 
.
└── your-project/
    ├── go-project/
    │   ├── go.mod
    │   ├── go.sum
    │   └── main.go
    ├── rust-project/
    │   ├── src/
    │   │   └── main.rs
    │   ├── Cargo.toml
    │   └── Cargo.lock
    ├── nodejs-project/
    │   ├── index.js
    │   ├── package.json
    │   └── package-lock.json
    └── rustywatch.yaml (config here)

Run the project

rustywatch

Help

rustywatch --help

Support languages

  • NodeJS
  • Go
  • Rust
  • Javascript
  • (more)

Star History

Star History Chart

License

MIT & Apache-2.0