[package]
name = "rowdy-db"
version = "0.9.2"
edition = "2024"
authors = ["Thierry Soulie <thierry.soulie@tsodev.fr>"]
description = "A fast, modern, and rowdy TUI database management tool written in Rust."
readme = "README.md"
license = "MIT OR Apache-2.0"
keywords = ["database", "tui", "terminal", "postgres", "sqlite"]
categories = ["development-tools", "database"]
repository = "https://github.com/TSODev/rowdy"
exclude = ["*.cast", "*.pdf", "seed/", "memory/"]

[features]
default = ["secure-storage"]
mongodb = ["dep:mongodb"]
duckdb = ["dep:duckdb"]
secure-storage = ["dep:keyring"]

[dependencies]
# Interface graphique de terminal
ratatui = "0.27"
crossterm = { version = "0.27", features = ["event-stream"] }
futures = "0.3"

# Moteur asynchrone
tokio = { version = "1", features = ["full"] }
async-trait = "0.1"

# Couche base de données
sqlx = { version = "0.7", features = ["runtime-tokio-native-tls", "sqlite", "postgres", "mysql", "chrono", "uuid", "json", "bigdecimal"] }
chrono = "0.4"
uuid = "1"
serde_json = "1"
bigdecimal = "0.3"
redis = { version = "0.24", features = ["tokio-comp"] }

# Sérialisation et configuration
serde = { version = "1", features = ["derive"] }
toml = "0.8"

# Gestion des erreurs
thiserror = "1"
tui-textarea = "0.5"
clap = { version = "4", features = ["derive"] }
libsql = { version = "0.9.30", features = ["remote"] }
mongodb = { version = "3", optional = true }
duckdb = { version = "1", features = ["bundled"], optional = true }
keyring = { version = "4", optional = true }

