# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2024"
name = "chainmq"
version = "1.2.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.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"
