Skip to content
/ vita Public

A lightweight scheduling application offering an intuitive API for task and event automation

License

Notifications You must be signed in to change notification settings

dpouris/vita

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VITA

A workflow scheduler for automating crucial or every-day tasks


Table of Contents

Introduction

⚠️ Warning: The project is actively being worked on and is very much still incomplete. Some things may not work as expected or not at all.


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.

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 ⚙️

Installation

To begin, clone the repository and cd into its directory:

$ git clone https://github.com/douris/vita
...

$ cd vita/ 

Build and run binaries

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

Alternatively, you can run directly with Cargo

  • Server
    $ cargo run --release --manifest-path=./Cargo.toml --bin=vita-server
  • Client
    $ cargo run --release --manifest-path=./Cargo.toml --bin=vita-client

About

A lightweight scheduling application offering an intuitive API for task and event automation

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published