[workspace.package]
edition = "2021"
repository = "https://github.com/geofmureithi/apalis"
[package]
name = "apalis"
version = "0.5.5"
authors = ["Geoffrey Mureithi <mureithinjuguna@gmail.com>"]
description = "Simple, extensible multithreaded background job processing for Rust"
edition.workspace = true
repository.workspace = true
documentation = "https://docs.rs/apalis"
readme = "README.md"
license = "MIT OR Apache-2.0"
keywords = ["job", "task", "scheduler", "worker", "cron"]
categories = ["database"]
[lib]
bench = false
[features]
default = ["tracing", "tokio-comp"]
redis = ["apalis-redis"]
postgres = ["apalis-sql/postgres"]
sqlite = ["apalis-sql/sqlite"]
mysql = ["apalis-sql/mysql"]
cron = ["apalis-cron"]
tracing = ["dep:tracing", "dep:tracing-futures"]
sentry = ["sentry-core", "ulid?/uuid", "uuid"]
prometheus = ["metrics", "metrics-exporter-prometheus"]
retry = ["tower/retry"]
timeout = ["tower/timeout"]
limit = ["tower/limit"]
filter = ["tower/filter"]
async-std-comp = [
"apalis-sql?/async-std-comp",
"apalis-redis?/async-std-comp",
"apalis-cron?/async-std-comp",
"async-std",
]
tokio-comp = [
"apalis-sql?/tokio-comp",
"apalis-redis?/tokio-comp",
"apalis-cron?/tokio-comp",
"tokio",
]
layers = [
"sentry",
"prometheus",
"tracing",
"retry",
"timeout",
"limit",
"filter",
]
docsrs = ["document-features"]
[dependencies.apalis-redis]
version = "0.5.5"
optional = true
path = "./packages/apalis-redis"
default-features = false
[dependencies.apalis-sql]
version = "0.5.5"
features = ["migrate"]
optional = true
default-features = false
path = "./packages/apalis-sql"
[dependencies.apalis-core]
version = "0.5.5"
default-features = false
path = "./packages/apalis-core"
[dependencies.apalis-cron]
version = "0.5.5"
optional = true
default-features = false
path = "./packages/apalis-cron"
[dependencies.document-features]
version = "0.2"
optional = true
[package.metadata.docs.rs]
rustdoc-args = ["--cfg", "docsrs"]
all-features = true
[dev-dependencies]
criterion = { version = "0.5.1", features = ["async_tokio", "html_reports"] }
pprof = { version = "0.13", features = ["flamegraph"] }
paste = "1.0.14"
serde = "1"
tokio = { version = "1", features = ["macros", "rt-multi-thread"] }
apalis = { path = ".", features = ["redis", "sqlite", "postgres", "mysql"] }
redis = { version = "0.25.3", default-features = false, features = [
"script",
"aio",
"connection-manager",
] }
[dev-dependencies.sqlx]
version = "0.8.1"
default-features = false
features = ["chrono", "mysql", "sqlite", "postgres"]
[[bench]]
name = "storages"
harness = false
[workspace]
members = [
"packages/apalis-core",
"packages/apalis-redis",
"packages/apalis-sql",
"packages/apalis-cron",
"examples/email-service",
"examples/redis",
"examples/actix-web",
"examples/sqlite",
"examples/sentry",
"examples/mysql",
"examples/postgres",
"examples/axum",
"examples/prometheus",
"examples/tracing",
"examples/async-std-runtime",
"examples/basics",
]
[dependencies]
tokio = { version = "1", features = [
"rt",
], default-features = false, optional = true }
async-std = { version = "1", optional = true }
tower = { version = "0.5", features = ["util"], default-features = false }
tracing-futures = { version = "0.2.5", optional = true, default-features = false }
sentry-core = { version = "0.34.0", optional = true, default-features = false }
metrics = { version = "0.23.0", optional = true, default-features = false }
metrics-exporter-prometheus = { version = "0.15", optional = true, default-features = false }
thiserror = "1.0.59"
futures = "0.3.30"
pin-project-lite = "0.2.14"
uuid = { version = "1.8", optional = true }
ulid = { version = "1", optional = true }
serde = { version = "1.0", features = ["derive"] }
[dependencies.tracing]
default-features = false
version = "0.1.40"
optional = true