[package]
name = "sockudo-app"
description = "Application manager implementations for Sockudo"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
repository.workspace = true
license-file.workspace = true

[features]
default = ["local"]
local = []
full = ["mysql", "postgres", "dynamodb", "surrealdb", "scylladb"]
mysql = ["sockudo-core/mysql", "dep:sqlx", "dep:futures-util", "dep:urlencoding", "dep:regex"]
postgres = ["sockudo-core/postgres", "dep:sqlx", "dep:futures-util", "dep:urlencoding", "dep:regex"]
dynamodb = ["sockudo-core/dynamodb", "dep:aws-config", "dep:aws-sdk-dynamodb"]
surrealdb = ["sockudo-core/surrealdb", "dep:surrealdb", "dep:surrealdb-types", "dep:regex"]
scylladb = ["sockudo-core/scylladb", "dep:scylla", "dep:futures"]

[dependencies]
sockudo-core = { workspace = true }

ahash = { workspace = true }
async-trait = { workspace = true }
aws-config = { workspace = true, optional = true }
aws-sdk-dynamodb = { workspace = true, optional = true }
dashmap = { workspace = true }
futures = { workspace = true, optional = true }
futures-util = { workspace = true, optional = true }
moka = { workspace = true }
regex = { workspace = true, optional = true }
scylla = { workspace = true, optional = true }
serde = { workspace = true }
sonic-rs = { workspace = true }
sqlx = { workspace = true, optional = true }
surrealdb = { workspace = true, optional = true }
surrealdb-types = { workspace = true, optional = true }
tokio = { workspace = true }
tracing = { workspace = true }
urlencoding = { workspace = true, optional = true }

[dev-dependencies]
sockudo-cache = { path = "../sockudo-cache" }
tokio = { workspace = true, features = ["full"] }
url = { workspace = true }
