[package] name = "omniqueue" version = "0.2.0" license = "MIT" description = "An abstraction layer over various queue backends" authors = ["Svix Inc. "] repository = "https://github.com/svix/omniqueue-rs/" readme = "../README.md" rust-version = "1.75" edition = "2021" [dependencies] async-trait = "0.1" aws-config = { version = "1.1.5", features = ["behavior-version-latest"], optional = true } aws-sdk-sqs = { version = "1.13.0", optional = true } bb8 = { version = "0.8", optional = true } bb8-redis = { version = "0.14.0", optional = true } futures-util = { version = "0.3.28", default-features = false, features = ["async-await", "std"], optional = true } google-cloud-googleapis = { version = "0.12.0", optional = true } google-cloud-pubsub = { version = "0.23.0", optional = true } lapin = { version = "2", optional = true } redis = { version = "0.24.0", features = ["tokio-comp", "tokio-native-tls-comp", "streams"], optional = true } serde = "1.0.196" serde_json = "1" svix-ksuid = { version = "0.8.0", optional = true } thiserror = "1" time = { version = "0.3.34", optional = true } tokio = { version = "1", features = ["rt", "sync", "time"] } tracing = "0.1" [dev-dependencies] anyhow = "1.0.79" fastrand = "2.0.1" serde = { version = "1.0.196", features = ["derive"] } tokio = { version = "1", features = ["macros"] } tokio-executor-trait = "2.1" tokio-reactor-trait = "1.1" [features] default = ["in_memory", "gcp_pubsub", "rabbitmq", "redis", "redis_cluster", "sqs"] in_memory = [] gcp_pubsub = ["dep:futures-util", "dep:google-cloud-googleapis", "dep:google-cloud-pubsub"] rabbitmq = ["dep:futures-util", "dep:lapin"] # Generate message IDs for queue items. Likely not needed outside of Svix. rabbitmq-with-message-ids = ["rabbitmq", "dep:time", "dep:svix-ksuid"] redis = ["dep:bb8", "dep:bb8-redis", "dep:redis", "dep:svix-ksuid"] redis_cluster = ["redis", "redis/cluster-async"] sqs = ["dep:aws-config", "dep:aws-sdk-sqs"]