RustyWatch
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
License
MIT & Apache-2.0