[package] name = "mytheclipse-queue" version = "1.16.0" edition = "2021" rust-version = "1.75" license = "MIT OR Apache-2.0" repository = "https://github.com/asepharyana/mytheclipse" homepage = "https://github.com/asepharyana/mytheclipse" documentation = "https://docs.rs/mytheclipse-queue" authors = ["asepharyana "] description = "Unified job queue abstraction with pluggable backends (in-memory, Redis, NATS, Postgres)." readme = "README.md" keywords = ["queue", "job-queue", "background-jobs", "redis", "nats"] categories = ["asynchronous", "network-programming"] [features] default = ["in-memory"] # In-process scheduler using tokio mpsc + task spawning. in-memory = ["dep:tokio"] # Redis-backed distributed queue. redis = ["dep:redis"] # NATS JetStream-backed distributed queue. nats = ["dep:async-nats", "dep:bytes"] # PostgreSQL-backed queue using SKIP LOCKED. postgres = ["dep:tokio-postgres"] [dependencies] tracing = "0.1" async-trait = "0.1" tokio = { version = "1.53", features = ["sync", "time", "rt", "macros"], optional = true } redis = { version = "0.27", default-features = false, features = ["tokio-comp"], optional = true } async-nats = { version = "0.38", optional = true } bytes = { version = "1", optional = true } tokio-postgres = { version = "0.7", optional = true } serde = { version = "1", features = ["derive"] } serde_json = "1" uuid = { version = "1", features = ["v4"] } [dev-dependencies] tokio = { version = "1.53", features = ["full"] }