# `barto` - A job scheduling system
[](https://codecov.io/gh/rustyhorde/barto)
[](https://github.com/rustyhorde/barto/actions/workflows/barto.yml)
[](https://github.com/sponsors/CraZySacX)
## MSRV
1.89.0
## `bartos` - The barto server
[](https://crates.io/crates/bartos)
[](https://crates.io/crates/bartos)
[](https://crates.io/crates/bartos)
### Configuration
`bartos` configuration is controlled via a toml file. By default this is located in the `bartos` directory rooted at the `dirs2` [config](https://docs.rs/dirs2/latest/dirs2/fn.config_dir.html) directory, i.e. `/home/<user>/.config/bartos/bartos.toml` on a Linux machine. The full path to the configuration file can also be specified as a command-line argument to `bartos`. See the
help output `bartos --help` for more details.
#### Format
```toml
# Actix Configuration
[actix]
workers = 8 # Required
ip = "0.0.0.0" # Required
port = "20000" # Required
# Actix TLS Configuration
[actix.tls] # Optional
ip = "0.0.0.1" # Required, if TLS
port = "20000" # Required, if TLS
cert_file_path = "/path/cert.pem" # Required, if TLS
key_file_path = "/path/key.pem" # Required, if TLS
# MariaDB Configuration
[mariadb]
host = "localhost" # Required
port = 3307 # Optional, default 3306
username = "user" # Required
password = "pass" # Required
database = "db" # Required
options = "ssl=true" # Optional, & separated key-value pairs
# stdout Tracing Configuration
[tracing.stdout]
with_target = true # Required
with_thread_ids = false # Required
with_thread_names = false # Required
with_line_number = false # Required
with_level = true # Required
directives = "actix_server=error" # Required
# File Tracing Configuration
[tracing.file]
quiet = 0 # Required
verbose = 3 # Required
# File Tracing Layer Configuration
[tracing.file.layer]
with_target = true # Required
with_thread_ids = false # Required
with_thread_names = false # Required
with_line_number = false # Required
with_level = true # Required
directives = "actix_server=error" # Required
# An array of schedules for barto clients
# This is [schedules.<bartoc name>]. This should match the name defined in your bartoc.toml.
[schedules.barto] = [
{ name = "echo", on_calendar = "*-*-* 10:R:R", cmds = [ "echo -n \"barto\"" ] }
]
```
The `on_calendar` format is outlined at [`Realtime`](https://docs.rs/libbarto/latest/libbarto/struct.Realtime.html)
## `bartoc` - The barto client
[](https://crates.io/crates/bartoc)
[](https://crates.io/crates/bartoc)
[](https://crates.io/crates/bartoc)
## `barto-cli` - The barto command line client
[](https://crates.io/crates/barto-cli)
[](https://crates.io/crates/barto-cli)
[](https://crates.io/crates/barto-cli)
## `libbarto` - The shared library
[](https://docs.rs/libbarto)
[](https://crates.io/crates/libbarto)
[](https://crates.io/crates/libbarto)
[](https://crates.io/crates/libbarto)