[package] name = "tokio-task-scheduler" version = "1.0.0" edition = "2021" description = "A non-blocking task scheduler for Rust with fluent API, supporting interval-based and cron-like scheduling" license = "MIT" readme = "README.md" homepage = "https://github.com/cploutarchou/scheduler" repository = "https://github.com/cploutarchou/scheduler" documentation = "https://docs.rs/tokio-task-scheduler" keywords = ["scheduler", "async", "tokio", "cron", "task"] categories = [ "asynchronous", "date-and-time", "concurrency", "development-tools", "rust-patterns" ] authors = ["Christos Ploutarchou "] rust-version = "1.70" [lib] name = "tokio_task_scheduler" path = "src/lib.rs" [dependencies] # Core dependencies tokio = { version = "1.28", features = ["full"] } chrono = { version = "0.4.26", features = ["serde"] } uuid = { version = "1.3", features = ["v4", "serde"] } # Error handling thiserror = "2.0.3" anyhow = "1.0.71" # Serialization serde = { version = "1.0.163", features = ["derive"] } serde_json = "1.0.96" # Async utilities async-trait = "0.1.68" futures = "0.3" # Persistent storage rusqlite = { version = "0.32.1", features = ["bundled", "serde_json"] } # Logging and tracing tracing = "0.1" tracing-subscriber = "0.3" # Message Queue - optional lapin = { version = "2.1", optional = true } # RabbitMQ client # Utils once_cell = "1.18" [dev-dependencies] tokio = { version = "1.28", features = ["test-util", "macros"] } criterion = { version = "0.5.1", features = ["async_tokio"] } tokio-test = "0.4" pretty_assertions = "1.3.0" tempfile = "3.5.0" [[bench]] name = "scheduler_benchmarks" harness = false [profile.release] opt-level = 3 lto = true codegen-units = 1 panic = 'unwind' debug = false strip = true [profile.dev] opt-level = 0 debug = true [package.metadata.docs.rs] all-features = true rustdoc-args = ["--cfg", "docsrs"]