hammerwork 1.2.2

A high-performance, database-driven job queue for Rust with PostgreSQL and MySQL support, featuring job prioritization, cron scheduling, timeouts, rate limiting, Prometheus metrics, alerting, and comprehensive statistics collection
Documentation
[workspace]
members = [
    ".",
    "cargo-hammerwork",
    "hammerwork-web",
    "integrations/postgres-integration",
    "integrations/mysql-integration",
]
resolver = "2"

[workspace.package]
version = "1.2.2"
edition = "2024"
license = "MIT"
repository = "https://github.com/CodingAnarchy/hammerwork"
authors = ["CodingAnarchy <noreply@codinganarchy.com>"]
homepage = "https://github.com/CodingAnarchy/hammerwork"
documentation = "https://docs.rs/hammerwork"
rust-version = "1.86"

[workspace.dependencies]
hammerwork = { version = "1.2.2", path = "." }
tokio = { version = "1.0", features = ["full"] }
sqlx = { version = "0.8", features = ["runtime-tokio-rustls", "chrono", "uuid", "json"] }
chrono = { version = "0.4", features = ["serde"] }
chrono-tz = "0.8"
cron = "0.12"
uuid = { version = "1.0", features = ["v4", "serde"] }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
thiserror = "1.0"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
async-trait = "0.1"
tokio-test = "0.4"
rand = "0.8"
prometheus = { version = "0.13" }
reqwest = { version = "0.12", features = ["json"] }
warp = { version = "0.3" }
clap = { version = "4.0", features = ["derive"] }
anyhow = "1.0"
comfy-table = "7.0"
indicatif = "0.17"
toml = "0.8"
dirs = "5.0"
tempfile = "3.8"

[package]
name = "hammerwork"
description = "A high-performance, database-driven job queue for Rust with PostgreSQL and MySQL support, featuring job prioritization, cron scheduling, timeouts, rate limiting, Prometheus metrics, alerting, and comprehensive statistics collection"
readme = "README.md"
keywords = ["database", "job-queue", "async", "postgres", "mysql"]
categories = ["database", "asynchronous", "concurrency"]
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
authors.workspace = true
homepage.workspace = true
documentation.workspace = true
rust-version.workspace = true

[dependencies]
tokio = { workspace = true }
sqlx = { workspace = true }
chrono = { workspace = true }
chrono-tz = { workspace = true }
cron = { workspace = true }
uuid = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
thiserror = { workspace = true }
tracing = { workspace = true }
async-trait = { workspace = true }
rand = { workspace = true }
prometheus = { version = "0.13", optional = true }
reqwest = { version = "0.12", features = ["json"], optional = true }
warp = { version = "0.3", optional = true }
clap = { workspace = true }
tracing-subscriber = { workspace = true }
opentelemetry = { version = "0.22", optional = true }
opentelemetry_sdk = { version = "0.22", features = ["rt-tokio"], optional = true }
opentelemetry-otlp = { version = "0.15", features = ["tokio"], optional = true }
tracing-opentelemetry = { version = "0.23", optional = true }

[features]
default = ["metrics", "alerting"]
postgres = ["sqlx/postgres"]
mysql = ["sqlx/mysql"]
metrics = ["prometheus", "warp"]
alerting = ["reqwest"]
tracing = ["opentelemetry", "opentelemetry_sdk", "opentelemetry-otlp", "tracing-opentelemetry"]
test = []

[dev-dependencies]
tokio-test = { workspace = true }
tracing-subscriber = { workspace = true }

[[example]]
name = "postgres_example"
required-features = ["postgres"]

[[example]]
name = "mysql_example"
required-features = ["mysql"]

[[example]]
name = "cron_example"
required-features = ["postgres"]

[[example]]
name = "priority_example"
required-features = ["postgres"]

[[example]]
name = "batch_example"
required-features = ["postgres"]

[[example]]
name = "worker_batch_example"
required-features = ["postgres"]

[[example]]
name = "retry_strategies"
required-features = ["postgres"]

[[example]]
name = "result_storage_example"
required-features = ["postgres"]

[[example]]
name = "autoscaling_example"
required-features = ["postgres"]

[[example]]
name = "test_queue_example"
required-features = ["test"]