[package]
authors = ["Braden Steffaniak"]
categories = ["database"]
description = "Switchy database package"
edition = "2024"
keywords = ["database", "mysql", "postgres", "sqlite"]
license = "MPL-2.0"
name = "switchy_database"
readme = "README.md"
repository = "https://github.com/MoosicBox/MoosicBox"
version = "0.1.1"
[package.metadata.workspaces]
group = "switchy"
[dependencies]
moosicbox_assert = { workspace = true }
moosicbox_task = { workspace = true, optional = true }
rusqlite = { workspace = true, optional = true }
sqlx = { workspace = true, optional = true, features = ["runtime-tokio"] }
sqlx-postgres = { workspace = true, optional = true }
postgres-protocol = { workspace = true, optional = true, features = [] }
tokio-postgres = { workspace = true, optional = true, features = [] }
regex = { workspace = true, optional = true }
actix-web = { workspace = true, optional = true }
qstring = { workspace = true, optional = true }
async-trait = { workspace = true }
chrono = { workspace = true }
futures = { workspace = true, optional = true }
log = { workspace = true }
thiserror = { workspace = true }
tokio = { workspace = true, features = ["sync"] }
tokio-util = { workspace = true, optional = true }
[features]
default = [
"api",
"mysql",
"postgres-sqlx",
"schema",
"simulator",
"sqlite-rusqlite",
"sqlite-sqlx",
]
fail-on-warnings = []
tls = ["sqlx/tls-rustls"]
api = ["dep:actix-web", "dep:futures", "dep:qstring"]
mysql = ["mysql-sqlx", "sqlx"]
mysql-sqlx = ["dep:futures", "dep:sqlx", "sqlx", "sqlx/mysql"]
postgres = [
"dep:futures",
"dep:moosicbox_task",
"dep:regex",
"dep:tokio-util",
"postgres-raw",
]
postgres-raw = ["dep:postgres-protocol", "dep:tokio-postgres", "postgres"]
postgres-sqlx = [
"dep:sqlx",
"dep:sqlx-postgres",
"postgres",
"sqlx",
"sqlx-postgres/chrono",
"sqlx/postgres",
]
sqlite = ["sqlite-sqlx"]
sqlite-rusqlite = ["dep:rusqlite"]
sqlite-sqlx = ["dep:futures", "dep:regex", "dep:sqlx", "sqlx", "sqlx/sqlite"]
sqlx = []
simulator = ["sqlite-rusqlite"]
schema = []