[package]
edition = "2024"
name = "chainmq"
version = "1.3.0"
authors = ["Alexander Nitiola <cre8tor.alexander@gmail.com>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A Redis-backed, type-safe job queue for Rust. Provides job registration and execution, delayed jobs, retries with backoff, and scalable workers."
documentation = "https://docs.rs/chainmq"
readme = "README.md"
keywords = [
"queue",
"jobs",
"bullmq",
"redis",
"workers",
]
categories = [
"web-programming",
"data-structures",
"development-tools",
"asynchronous",
]
license = "MIT"
repository = "https://github.com/thecre8tor/chainmq"
[features]
default = ["web-ui"]
web-ui = ["web-ui-axum"]
web-ui-actix = [
"web-ui-core",
"dep:actix-web",
"dep:actix-session",
]
web-ui-axum = [
"web-ui-core",
"dep:axum",
"dep:cookie",
"dep:tower-sessions",
"dep:tower-sessions-cookie-store",
"dep:tower-http",
]
web-ui-core = [
"dep:rust-embed",
"dep:bcrypt",
"dep:http",
]
[lib]
name = "chainmq"
path = "src/lib.rs"
[[example]]
name = "delayed_jobs"
path = "examples/delayed_jobs.rs"
[[example]]
name = "enqueue_email"
path = "examples/enqueue_email.rs"
[[example]]
name = "failure_retry"
path = "examples/failure_retry.rs"
[[example]]
name = "large_data_processing"
path = "examples/large_data_processing.rs"
[[example]]
name = "multi_jobs_single_worker"
path = "examples/multi_jobs_single_worker.rs"
[[example]]
name = "multi_jobs_with_ui"
path = "examples/multi_jobs_with_ui.rs"
[[example]]
name = "multi_workers"
path = "examples/multi_workers.rs"
[[example]]
name = "start_ui"
path = "examples/start_ui.rs"
[[example]]
name = "web_ui"
path = "examples/web_ui.rs"
[[example]]
name = "worker_main"
path = "examples/worker_main.rs"
[[test]]
name = "queue_integration"
path = "tests/queue_integration.rs"
[dependencies.actix-session]
version = "0.11.0"
features = ["cookie-session"]
optional = true
[dependencies.actix-web]
version = "4.4"
optional = true
[dependencies.anyhow]
version = "1.0"
[dependencies.async-trait]
version = "0.1"
[dependencies.axum]
version = "0.8"
optional = true
[dependencies.bcrypt]
version = "0.19.0"
optional = true
[dependencies.chrono]
version = "0.4"
features = ["serde"]
[dependencies.cookie]
version = "0.18"
optional = true
[dependencies.dashmap]
version = "6.1"
[dependencies.futures]
version = "0.3"
[dependencies.http]
version = "1"
optional = true
[dependencies.parking_lot]
version = "0.12"
[dependencies.redis]
version = "1.2"
features = [
"tokio-comp",
"script",
"connection-manager",
]
[dependencies.rust-embed]
version = "8"
features = ["include-exclude"]
optional = true
[dependencies.serde]
version = "1.0"
features = ["derive"]
[dependencies.serde_json]
version = "1.0"
[dependencies.thiserror]
version = "2.0"
[dependencies.tokio]
version = "1.0"
features = ["full"]
[dependencies.tokio-util]
version = "0.7"
[dependencies.tower-http]
version = "0.6"
features = ["set-header"]
optional = true
[dependencies.tower-sessions]
version = "0.14"
features = ["axum-core"]
optional = true
[dependencies.tower-sessions-cookie-store]
version = "0.5"
optional = true
[dependencies.tracing]
version = "0.1"
[dependencies.tracing-subscriber]
version = "0.3"
features = ["env-filter"]
[dependencies.uuid]
version = "1.0"
features = [
"v4",
"serde",
]
[dev-dependencies.actix-web]
version = "4.4"
[dev-dependencies.axum]
version = "0.8"
[dev-dependencies.http]
version = "1"
[dev-dependencies.http-body-util]
version = "0.1"
[dev-dependencies.tokio-test]
version = "0.4"
[dev-dependencies.tower]
version = "0.5"
[dev-dependencies.tower-http]
version = "0.6"
features = ["set-header"]
[dev-dependencies.tower-sessions]
version = "0.14"
features = ["axum-core"]
[dev-dependencies.tower-sessions-cookie-store]
version = "0.5"