[package]
name = "dbcli"
version = "0.1.0"
edition = "2021"
description = "Convert SQL query results to JSON without struct mapping, supporting MySQL/PostgreSQL/SQLite/Odbc"
license = "MIT"
repository = "https://github.com/kaifang-123/dbcli"
documentation = "https://docs.rs/dbcli"
homepage = "https://github.com/kaifang-123/dbcli"
readme = "README.md"
rust-version = "1.70"
keywords = ["sql", "json", "mysql", "postgres", "sqlite"]
categories = ["database", "encoding"]
[lib]
name = "dbcli"
[[bin]]
name = "dbcli"
path = "src/main.rs"
required-features = ["cli"]
[dependencies]
serde_json = "1.0"
anyhow = "1.0"
serde = { version = "1.0", features = ["derive"] }
sqlx = { version = "0.8", optional = true, features = ["runtime-tokio", "tls-native-tls", "chrono", "json", "rust_decimal","uuid"] }
chrono = { version = "0.4", optional = true, features = ["serde"] }
rust_decimal = { version = "1.41", optional = true, features = ["serde"] }
base64 = { version = "0.22", optional = true }
encoding_rs = { version = "0.8", optional = true }
futures = { version = "0.3", optional = true }
clap = { version = "4", features = ["derive", "env"], optional = true }
tokio = { version = "1", features = ["full"], optional = true }
comfy-table = { version = "7", optional = true }
rustyline = { version = "15", optional = true }
crossterm = { version = "0.29", optional = true }
uuid = { version = "1.23.1", features = ["v7", "serde"] }
odbc-api = { version = "25.0.0", optional = true }
[features]
default = ["cli", "mysql", "postgres", "sqlite"]
mysql = ["dep:sqlx", "sqlx/mysql", "dep:chrono", "dep:rust_decimal", "dep:base64", "dep:encoding_rs", "dep:futures"]
postgres = ["dep:sqlx", "sqlx/postgres", "dep:chrono", "dep:rust_decimal", "dep:base64", "dep:encoding_rs", "dep:futures"]
sqlite = ["dep:sqlx", "sqlx/sqlite", "dep:base64", "dep:futures"]
odbc = ["dep:odbc-api", "dep:base64", "dep:encoding_rs", "dep:tokio"]
cli = ["dep:clap", "dep:tokio", "dep:comfy-table", "dep:rustyline", "dep:crossterm"]