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