[package]
edition = "2024"
name = "cloudiful-scheduler"
version = "0.4.0"
build = false
publish = [
"crates-io",
"kellnr",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Single-job async scheduling library for background work with optional Valkey-backed state."
homepage = "https://github.com/cloudiful/scheduler"
documentation = "https://docs.rs/cloudiful-scheduler"
readme = "README.md"
keywords = [
"scheduler",
"cron",
"tokio",
"valkey",
]
categories = [
"asynchronous",
"date-and-time",
]
license = "Apache-2.0"
repository = "https://github.com/cloudiful/scheduler"
[package.metadata.docs.rs]
all-features = true
[features]
default = []
valkey-guard = ["dep:redis"]
valkey-store = [
"dep:redis",
"dep:serde",
"dep:serde_json",
]
[lib]
name = "scheduler"
path = "src/lib.rs"
[[test]]
name = "control_and_recovery"
path = "tests/control_and_recovery.rs"
[[test]]
name = "cron_schedule"
path = "tests/cron_schedule.rs"
[[test]]
name = "edge_cases"
path = "tests/edge_cases.rs"
[[test]]
name = "execution_guard"
path = "tests/execution_guard.rs"
[[test]]
name = "guarded_and_coordinated"
path = "tests/guarded_and_coordinated.rs"
[[test]]
name = "observer_and_cleanup"
path = "tests/observer_and_cleanup.rs"
[[test]]
name = "policies"
path = "tests/policies.rs"
[[test]]
name = "resilient_store"
path = "tests/resilient_store.rs"
[[test]]
name = "task_execution"
path = "tests/task_execution.rs"
[[test]]
name = "time_windows"
path = "tests/time_windows.rs"
[[test]]
name = "valkey_store"
path = "tests/valkey_store.rs"
[dependencies.chrono]
version = "0.4.44"
features = ["serde"]
[dependencies.chrono-tz]
version = "0.10.4"
[dependencies.cron]
version = "0.16.0"
[dependencies.log]
version = "0.4.29"
[dependencies.redis]
version = "1.2.1"
features = [
"tokio-comp",
"connection-manager",
]
optional = true
[dependencies.serde]
version = "1"
features = ["derive"]
optional = true
[dependencies.serde_json]
version = "1"
optional = true
[dependencies.tokio]
version = "1.52.2"
features = [
"macros",
"rt",
"rt-multi-thread",
"sync",
"time",
]