flashcron 0.1.0

A lightning-fast, ultra-efficient cron daemon written in Rust - Schedule tasks at the speed of light
Documentation
[package]
name = "flashcron"
version = "0.1.0"
edition = "2021"
rust-version = "1.82"
authors = ["Alfredo Baratta <alfredobaratta@outlook.com>"]
description = "A lightning-fast, ultra-efficient cron daemon written in Rust - Schedule tasks at the speed of light"
license = "MIT"
repository = "https://github.com/alfredo-baratta/flashcron"
homepage = "https://github.com/alfredo-baratta/flashcron"
documentation = "https://docs.rs/flashcron"
keywords = ["cron", "scheduler", "daemon", "async", "performance"]
categories = ["command-line-utilities", "development-tools"]
readme = "README.md"

[dependencies]
# Async runtime - lightweight
tokio = { version = "1.34", features = ["rt-multi-thread", "sync", "time", "signal", "process", "fs", "macros", "io-util"] }

# CLI
clap = { version = "4.4", features = ["derive", "env"] }

# Configuration
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
toml = "0.8"

# Cron parsing
cron = "0.12"
chrono = { version = "0.4", features = ["serde"] }

# Logging
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }

# Error handling
thiserror = "1.0"
anyhow = "1.0"

# Process management
nix = { version = "0.27", features = ["signal", "process"], optional = true }

# Metrics (optional)
metrics = { version = "0.21", optional = true }
metrics-exporter-prometheus = { version = "0.12", optional = true }

# Notify for config reload
notify = "6.1"

# UUID for job IDs
uuid = { version = "1.6", features = ["v4", "serde"] }

[target.'cfg(unix)'.dependencies]
nix = { version = "0.27", features = ["signal", "process"] }

[target.'cfg(windows)'.dependencies]
windows = { version = "0.52", features = ["Win32_System_Threading", "Win32_Foundation"] }

[dev-dependencies]
criterion = { version = "0.5", features = ["async_tokio"] }
tempfile = "3.8"
tokio-test = "0.4"
assert_cmd = "2.0"
predicates = "3.0"

[features]
default = []
metrics = ["dep:metrics", "dep:metrics-exporter-prometheus"]

[[bin]]
name = "flashcron"
path = "src/main.rs"

[[bench]]
name = "scheduler_bench"
harness = false

[[bench]]
name = "parser_bench"
harness = false

[profile.release]
lto = true
codegen-units = 1
panic = "abort"
strip = true
opt-level = 3

[profile.bench]
lto = true
codegen-units = 1