[package]
name = "delta_kernel"
description = "Core crate providing a Delta/Deltalake implementation focused on interoperability with a wide range of query engines."
documentation = "https://docs.rs/delta_kernel"
edition.workspace = true
homepage.workspace = true
license.workspace = true
repository.workspace = true
readme.workspace = true
version.workspace = true
exclude = ["tests/golden_tables.rs", "tests/golden_data/", "tests/data/"]
rust-version.workspace = true
[package.metadata.docs.rs]
all-features = true
[package.metadata.release]
pre-release-replacements = [
{ file = "../README.md", search = "delta_kernel = \"[a-z0-9\\.-]+\"", replace = "delta_kernel = \"{{version}}\"" },
{ file = "../README.md", search = "version = \"[a-z0-9\\.-]+\"", replace = "version = \"{{version}}\"" },
]
pre-release-hook = [
"git",
"cliff",
"--repository",
"../",
"--config",
"../cliff.toml",
"--unreleased",
"--prepend",
"../CHANGELOG.md",
"--include-path",
"*",
"--tag",
"{{version}}",
]
[dependencies]
delta_kernel_derive = { path = "../derive-macros", version = "0.19.0" }
bytes = "1.10"
chrono = "0.4.41"
crc = "3.2.2"
indexmap = "2.10.0"
itertools = "0.14"
roaring = "0.11.2"
serde = { version = "1", features = ["derive", "rc"] }
serde_json = "1"
strum = { version = "0.27", features = ["derive"] }
thiserror = "2"
tracing = { version = "0.1", features = ["log"] }
url = "2"
uuid = { version = "1.18.0", features = ["v4", "fast-rng"] }
z85 = "3.0.6"
futures = { version = "0.3", optional = true }
reqwest = { version = "0.12.23", default-features = false, optional = true }
tokio = { version = "1.47", optional = true, features = ["rt-multi-thread"] }
object_store = { version = "0.12.3", optional = true, features = ["aws", "azure", "gcp", "http"] }
comfy-table = { version = "7.1", optional = true }
[dependencies.arrow_56]
package = "arrow"
version = "56"
features = ["chrono-tz", "ffi", "json", "prettyprint"]
optional = true
[dependencies.parquet_56]
package = "parquet"
version = "56"
features = ["async", "object_store"]
optional = true
[dependencies.arrow_57]
package = "arrow"
version = "57"
features = ["chrono-tz", "ffi", "json", "prettyprint"]
optional = true
[dependencies.parquet_57]
package = "parquet"
version = "57"
features = ["async", "object_store"]
optional = true
[features]
default = []
internal-api = []
integration-test = ["hdfs-native-object-store/integration-test"]
arrow = ["arrow-57"]
need-arrow = []
arrow-56 = ["dep:arrow_56", "dep:parquet_56", "object_store", "comfy-table"]
arrow-57 = ["dep:arrow_57", "dep:parquet_57", "object_store", "comfy-table"]
arrow-conversion = ["need-arrow"]
arrow-expression = ["need-arrow"]
catalog-managed = []
default-engine-base = [
"arrow-conversion",
"arrow-expression",
"futures",
"need-arrow",
"tokio",
]
default-engine-native-tls = ["default-engine-base", "reqwest/default"]
default-engine-rustls = [
"default-engine-base",
"reqwest/rustls-tls-native-roots",
"reqwest/http2",
]
[build-dependencies]
rustc_version = "0.4.1"
[dev-dependencies]
delta_kernel = { path = ".", features = ["arrow", "catalog-managed", "default-engine-rustls", "internal-api"] }
test_utils = { path = "../test-utils" }
criterion = "0.5"
hdfs-native-object-store = { version = "0.15.0" }
hdfs-native = "0.12.2"
walkdir = { version = "2.5.0" }
async-trait = "0.1"
paste = "1.0"
test-log = { version = "0.2", default-features = false, features = ["trace"] }
tempfile = "3"
tracing-subscriber = { version = "0.3", default-features = false, features = [
"env-filter",
"fmt",
] }
[[bench]]
name = "metadata_bench"
harness = false
[[bench]]
name = "expression_bench"
harness = false