[package]
name = "deltalake-golang"
version = "0.0.1"
license = "Apache-2.0"
description = "Native Delta Lake Golang binding based on delta-rs with CGO integration"
readme = "README.md"
edition = "2021"
keywords = ["deltalake", "delta", "datalake", "golang", "cgo"]

[lib]
name = "deltalake_golang"
crate-type = ["cdylib", "rlib"]
doc = false

[dependencies]
# Core Delta Lake dependency
deltalake = { version = "0.30.0", features = [
    "azure",
    "gcs", 
    "datafusion",
    "unity-experimental"
] }



# arrow (matching deltalake 0.30.0)
arrow-schema = { version = "57", features = ["serde"] }

# datafusion (matching deltalake 0.30.0) 
datafusion = { version = "51.0" }

# memory allocator & telemetry
tikv-jemallocator = { version = "0.6.1", optional = true }
tikv-jemalloc-ctl = { version = "0.6.1", optional = true, features = ["stats", "use_std"] }
tikv-jemalloc-sys = { version = "0.6.1", optional = true }

# serde
serde = { version = "1.0" }
serde_json = { version = "1.0" }

# url parsing
url = { version = "2" }

# "stdlib"
async-trait = { version = "0.1" }
chrono = { version = "0.4", features = ["serde"] }
env_logger = "0"
regex = { version = "1" }
thiserror = { version = "2" }
tracing = { version = "0.1" }
uuid = { version = "1.0", features = ["serde", "v4"] }
parking_lot = "0.12"

# runtime
futures = { version = "0.3" }
num_cpus = { version = "1" }
tokio = { version = "1", features = ["rt-multi-thread"] }

# C FFI support
libc = "0.2"
lazy_static = "1.4"


[features]
default = ["rustls", "jemalloc"]
native-tls = ["deltalake/s3-native-tls", "deltalake/glue"]
rustls = ["deltalake/s3", "deltalake/glue"]
jemalloc = ["tikv-jemallocator", "tikv-jemalloc-ctl", "tikv-jemalloc-sys"]

[dev-dependencies]
tempfile = "3.0"

[profile.release]
opt-level = 2
codegen-units = 16
lto = "thin"
