[package]
name        = "ailake-catalog"
version = "0.0.23"
edition     = "2021"
description = "Iceberg Spec v2 catalog backends (Hadoop, REST, Glue, Nessie, JDBC) for AI-Lake"
license     = "MIT OR Apache-2.0"
repository  = "https://github.com/ThiagoLange/ai-lakehouse"
keywords    = ["iceberg", "catalog", "lakehouse", "parquet", "metadata"]
categories  = ["database", "data-structures"]

[features]
rest-catalog   = ["dep:reqwest"]           # REST + Nessie HTTP catalog backends
catalog-glue   = ["dep:aws-sdk-glue", "dep:aws-config"]
catalog-nessie = ["rest-catalog"]
catalog-jdbc   = ["dep:sqlx"]

[dependencies]
ailake-core  = { path = "../ailake-core", version = "0.0.23" }
ailake-store = { path = "../ailake-store", version = "0.0.23" }
serde        = { workspace = true }
serde_json   = { workspace = true }
tokio        = { workspace = true }
tracing      = { workspace = true }
async-trait  = { workspace = true }
thiserror    = { workspace = true }
uuid         = { workspace = true }
bytes        = { workspace = true }
reqwest      = { version = "0.12", default-features = false, features = ["json", "rustls-tls"], optional = true }
base64       = "0.22"
apache-avro  = { workspace = true }
bincode      = { workspace = true }
roaring      = { workspace = true }
parquet      = { workspace = true }
arrow-array  = { workspace = true }
arrow-schema = { workspace = true }

# catalog-glue optional deps
aws-sdk-glue = { version = "1", optional = true }
aws-config   = { version = "1", features = ["behavior-version-latest"], optional = true }

# catalog-jdbc optional deps
sqlx = { version = "0.8", features = ["runtime-tokio", "tls-rustls", "postgres", "mysql", "sqlite", "any"], optional = true }

[dev-dependencies]
tempfile    = { workspace = true }
tokio       = { workspace = true }
