[package]
name = "ekodb_client"
version = "0.16.0"
authors = ["Sean M. Vazquez <sean.m.vazquez@gmail.com>"]
edition = "2024"
rust-version = "1.85"
license = "MIT OR Apache-2.0"
description = "Official Rust client library for ekoDB - A high-performance database"
repository = "https://github.com/ekoDB/ekodb"
documentation = "https://docs.rs/ekodb_client"
readme = "README.md"
keywords = ["database", "ekodb", "client", "async"]
categories = ["database", "api-bindings"]

[dependencies]
# Use workspace dependencies
serde = { workspace = true }
serde_json = { workspace = true }
tokio = { workspace = true }
reqwest = { workspace = true }
chrono = { workspace = true }
rust_decimal = { workspace = true }
uuid = { workspace = true }
thiserror = { workspace = true }
base64 = { workspace = true }
log = { workspace = true }

# Client-specific dependencies
tokio-tungstenite = { version = "0.28", default-features = false }
futures-util = "0.3.32"
url = "2.5.8"
regex = "1.12.3"
rmp-serde = "1.3.1"
async-compression = { version = "0.4.41", features = ["tokio", "gzip"] }  # Async gzip decompression
tokio-util = { version = "0.7.18", features = ["io"] }  # StreamReader for async decompression

[dev-dependencies]
tokio-test = "0.4"
mockito = "1.7.2"
env_logger = "0.11.10"

[features]
default = ["rustls"]
rustls = ["reqwest/rustls-tls", "tokio-tungstenite/rustls-tls-webpki-roots", "tokio-tungstenite/connect"]
native-tls = ["reqwest/native-tls", "tokio-tungstenite/native-tls", "tokio-tungstenite/connect"]
