[package]
name = "sqlx-cli"
version.workspace = true
description = "Command-line utility for SQLx, the Rust SQL toolkit."
edition = "2021"
readme = "README.md"
homepage = "https://github.com/launchbadge/sqlx"
repository = "https://github.com/launchbadge/sqlx"
keywords = ["database", "postgres", "database-management", "migration"]
categories = ["database", "command-line-utilities"]
license = "MIT OR Apache-2.0"
default-run = "sqlx"
authors = [
    "Jesper Axelsson <jesperaxe@gmail.com>",
    "Austin Bonander <austin.bonander@gmail.com>",
]

[[bin]]
name = "sqlx"
path = "src/bin/sqlx.rs"

# enables invocation as `cargo sqlx`; required for `prepare` subcommand
[[bin]]
name = "cargo-sqlx"
path = "src/bin/cargo-sqlx.rs"

[dependencies]
dotenvy = "0.15.0"
tokio = { version = "1.15.0", features = ["macros", "rt", "rt-multi-thread"] }
sqlx = { workspace = true, default-features = false, features = [
    "runtime-tokio",
    "migrate",
    "any",
] }
futures = "0.3.19"
clap = { version = "4.3.10", features = ["derive", "env"] }
clap_complete = { version = "4.3.1", optional = true }
chrono = { version = "0.4.19", default-features = false, features = ["clock"] }
anyhow = "1.0.52"
async-trait = "0.1.52"
console = "0.15.0"
promptly = "0.3.0"
serde_json = "1.0.73"
glob = "0.3.0"
openssl = { version = "0.10.38", optional = true }
cargo_metadata = "0.18.1"
filetime = "0.2"

backoff = { version = "0.4.0", features = ["futures", "tokio"] }

[features]
default = ["postgres", "sqlite", "mysql", "native-tls", "completions"]
rustls = ["sqlx/runtime-tokio-rustls"]
native-tls = ["sqlx/runtime-tokio-native-tls"]

# databases
mysql = ["sqlx/mysql"]
postgres = ["sqlx/postgres"]
sqlite = ["sqlx/sqlite"]
sqlite-unbundled = ["sqlx/sqlite-unbundled"]

# workaround for musl + openssl issues
openssl-vendored = ["openssl/vendored"]

completions = ["dep:clap_complete"]

[dev-dependencies]
assert_cmd = "2.0.11"
tempfile = "3.10.1"

[lints]
workspace = true