A workflow scheduler for automating crucial or every-day tasks
Vita allows you to split your tasks in scripts and execute them in varying schedules (like cron). The project is completely modular and all its components are split into their own crates see crates.
The project is made up of the following crates. The crates are as minimal as possible and have little to no dependencies:
Inspired by clockwerk
Allows for intuitive syntax/schedule creation like the following:
let scheduler = schedule_every! {
1.week(), 1.day() => {
println!("Every week and every day!!")
},
1.day() + 4.hour() => {
println!("Every 28 hours!")
}
Monday.midnight() => {
println!("Every Monday at midnight!")
},
}
An abstraction on top of Unix Sockets (UDS), allowing for inter-communication between the server and the clients
vita-daemon employs New-Style Daemons for the server, as the scheduler and executor should always be active as a background process
TODO ⚙️
To begin, clone the repository and cd into its directory:
$ git clone https://github.com/douris/vita
...
$ cd vita/
The program is split in two binaries for now:
- Server
$ cargo build --release --manifest-path=./Cargo.toml --bin=vita-server
- Client
$ cargo build --release --manifest-path=./Cargo.toml --bin=vita-client
In the end, 2 binaries will be created vita-server and vita-client and both can be found at ./target/release/
To run the binaries directly, cd into the above directory and run:
$ ./vita-server
# or
$ ./vita-client
- Server
$ cargo run --release --manifest-path=./Cargo.toml --bin=vita-server
- Client
$ cargo run --release --manifest-path=./Cargo.toml --bin=vita-client