k8sql 0.1.11

Query Kubernetes with SQL
[package]
name = "k8sql"
version = "0.1.11"
edition = "2024"
authors = ["Nikolay Denev <ndenev@gmail.com>"]
license = "BSD-3-Clause"
description = "Query Kubernetes with SQL"
repository = "https://github.com/ndenev/k8sql"
readme = "README.md"
keywords = ["kubernetes", "sql", "k8s", "datafusion", "cli"]
categories = ["command-line-utilities", "database"]

[dependencies]
# SQL query engine (Apache Arrow DataFusion)
datafusion = { version = "51", default-features = false, features = [
    "nested_expressions",
    "datetime_expressions",
    "regex_expressions",
    "string_expressions",
    "unicode_expressions",
    "sql",
    "recursive_protection",
] }
datafusion-functions-json = "0.51"

# Kubernetes client
kube = { version = "2", features = ["runtime", "client", "derive", "rustls-tls", "http-proxy"] }
k8s-openapi = { version = "0.26", features = ["v1_32"] }

# TLS provider for rustls (aws-lc-rs preferred for performance)
rustls = { version = "0.23", default-features = false, features = ["aws-lc-rs", "std", "tls12"] }

# PostgreSQL wire protocol (for daemon mode)
datafusion-postgres = "0.13"

# REPL / CLI
rustyline = { version = "17", features = ["derive"] }
indicatif = "0.18"
console = "0.16"
comfy-table = "7"
dirs = "6"

# Async runtime
tokio = { version = "1", features = ["full"] }

# CLI argument parsing
clap = { version = "4", features = ["derive"] }

# Serialization
serde = { version = "1", features = ["derive"] }
serde_json = "1"

# Date/time
chrono = "0.4"

# Error handling
anyhow = "1"

# Logging
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
tracing-rolling-file = { version = "0.1", features = ["non-blocking"] }

# Futures
futures = "0.3"

# Async streaming
async-stream = "0.3"

# Async trait support
async-trait = "0.1"

# YAML output
serde_yaml = "0.9"

# Regex for LIKE pattern matching
regex = "1"

# Atomic file operations
tempfile = "3"

[dev-dependencies]

[profile.release]
strip = true
lto = "thin"
codegen-units = 1
opt-level = "z"  # Optimize for size