[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 golden tests + golden test data since they push us over 10MB crate size limit exclude = ["tests/golden_tables.rs", "tests/golden_data/" ] [package.metadata.docs.rs] all-features = true [dependencies] bytes = "1.7" chrono = { version = "0.4" } fix-hidden-lifetime-bug = "0.2" indexmap = "2.5.0" itertools = "0.13" roaring = "0.10.6" serde = { version = "1", features = ["derive", "rc"] } serde_json = "1" thiserror = "1" # only for structured logging tracing = { version = "0.1", features = ["log"] } url = "2" uuid = "1.10.0" z85 = "3.0.5" # bring in our derive macros delta_kernel_derive = { path = "../derive-macros", version = "0.4.1" } # used for developer-visibility visibility = "0.1.1" # Used in default engine arrow-buffer = { workspace = true, optional = true } arrow-array = { workspace = true, optional = true, features = ["chrono-tz"] } arrow-select = { workspace = true, optional = true } arrow-arith = { workspace = true, optional = true } arrow-cast = { workspace = true, optional = true } arrow-json = { workspace = true, optional = true } arrow-ord = { workspace = true, optional = true } arrow-schema = { workspace = true, optional = true } futures = { version = "0.3", optional = true } object_store = { workspace = true, optional = true } hdfs-native-object-store = { workspace = true, optional = true } # Used in default and sync engine parquet = { workspace = true, optional = true } # Used for fetching direct urls (like pre-signed urls) reqwest = { version = "0.12.7", optional = true } strum = { version = "0.26", features = ["derive"] } # optionally used with default engine (though not required) tokio = { version = "1.40", optional = true, features = ["rt-multi-thread"] } # Used in integration tests hdfs-native = { workspace = true, optional = true } walkdir = { workspace = true, optional = true } [features] arrow-conversion = ["arrow-schema"] arrow-expression = ["arrow-arith", "arrow-array", "arrow-buffer", "arrow-ord", "arrow-schema"] cloud = [ "object_store/aws", "object_store/azure", "object_store/gcp", "object_store/http", "hdfs-native-object-store", ] default = [] default-engine = [ "arrow-conversion", "arrow-expression", "arrow-array", "arrow-buffer", "arrow-cast", "arrow-json", "arrow-schema", "arrow-select", "futures", "object_store", "parquet/async", "parquet/object_store", "reqwest", "tokio", ] developer-visibility = [] sync-engine = [ "arrow-cast", "arrow-conversion", "arrow-expression", "arrow-array", "arrow-json", "arrow-select", "parquet", ] integration-test = [ "hdfs-native-object-store/integration-test", "hdfs-native", "walkdir", ] [build-dependencies] rustc_version = "0.4.1" [dev-dependencies] arrow = { workspace = true, features = ["json", "prettyprint"] } delta_kernel = { path = ".", features = ["default-engine", "sync-engine"] } paste = "1.0" test-log = { version = "0.2", default-features = false, features = ["trace"] } tempfile = "3" tar = "0.4" zstd = "0.13" tracing-subscriber = { version = "0.3", default-features = false, features = [ "env-filter", "fmt", ] }