Inspired by Go Air, RustyWatch provides powerful live reloading capabilities designed for developers working across various programming languages.
- Universal Live Reloading: Seamlessly supports live reloading for any programming language.
- Real-time Binary Reloading: Automatically reloads your binaries in real-time.
- Monorepo Development Support: Effortlessly manage monorepo projects with built-in support.
- Multi-Project Execution: Run multiple projects concurrently with a single command.
- Optimized Build Process: Efficient and highly optimized for faster builds and reloading.
- Automatic Directory Monitoring: Detects and tracks new directories without manual intervention.
- Enhanced Logging: Enjoy colorful and detailed log outputs for easier debugging and monitoring.
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
cargo install rustywatch
To start the project, ensure you have a rustywatch.yaml
configuration file in the root directory of your project. Then, run the CLI from the root directory to launch RustyWatch.
The default configuration file is named rustywatch.yaml
, and it must be located in your project's root directory. For a reference configuration, please see the example below:
# 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
- cp ./golang-project/.env .env
- |
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 non 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)
rustywatch
rustywatch --help
cargo install rustywatch
- Go
- Rust
- Bun
- Node.js
- (more)
MIT & Apache-2.0