rustywatch 0.2.4

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.

Configuration

Default configuration named rustywatch.yaml, 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: # define command to build binary
    - 'cd ./golang-project
    - go build main.go' 
    bin_path: './golang-projec/main' # define path for binary location
    bin_arg: # define arguments
     - server
    ignore:
     - '.git'
  # second project binary apps
  - dir: 'rust-project'
    cmd:
    - 'cd ./rust-project
    - 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 ...
# 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