delta_kernel 0.0.1

Core crate providing a Delta/Deltalake implementation focused on interoperability with a wide range of query engines.
Documentation
[package]
name = "delta_kernel"
description = "Core crate providing a Delta/Deltalake implementation focused on interoperability with a wide range of query engines."
edition.workspace = true
homepage.workspace = true
license.workspace = true
repository.workspace = true
readme.workspace = true
version.workspace = true

[dependencies]
bytes = "1.4"
chrono = { version = "0.4" }
either = "1.8"
fix-hidden-lifetime-bug = "0.2"
indexmap = "2.2.1"
itertools = "0.12"
lazy_static = "1.4"
regex = "1.8"
roaring = "0.10.1"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
thiserror = "1"
# only for structured logging
tracing = { version = "0.1", features = ["log"] }
url = "2"
uuid = "1.3.0"
z85 = "3.0.5"

# bring in our derive macros
delta_kernel_derive = { path = "../derive-macros", version = "0.0.1" }

# used for developer-visibility
visibility = "0.1.0"

# Used in default client
arrow-array = { version = "^49.0", optional = true }
arrow-select = { version = "^49.0", optional = true }
arrow-arith = { version = "^49.0", optional = true }
arrow-json = { version = "^49.0", optional = true }
arrow-ord = { version = "^49.0", optional = true }
arrow-schema = { version = "^49.0", optional = true }
futures = { version = "0.3", optional = true }
object_store = { version = "^0.8.0", optional = true }
# Used in default and sync client
parquet = { version = "^49.0", optional = true }

# optionally used with default client (though not required)
tokio = { version = "1", optional = true, features = ["rt-multi-thread"] }

[features]
arrow-conversion = ["arrow-schema"]
arrow-expression = ["arrow-arith", "arrow-array", "arrow-ord", "arrow-schema"]
default = ["sync-client"]
default-client = [
  "arrow-conversion",
  "arrow-expression",
  "arrow-array",
  "arrow-json",
  "arrow-schema",
  "arrow-select",
  "futures",
  "object_store",
  "parquet/async",
  "parquet/object_store",
  "tokio"
]

developer-visibility = []
sync-client = [
  "arrow-conversion",
  "arrow-expression",
  "arrow-array",
  "arrow-json",
  "arrow-select",
  "parquet"
]

[dev-dependencies]
arrow = { version = "^49.0", features = ["json", "prettyprint"] }
delta_kernel = { path = ".", features = ["default-client", "sync-client"] }
test-log = { version = "0.2", default-features = false, features = ["trace"] }
tempfile = "3"
test-case = { version = "3.1.0" }
tracing-subscriber = { version = "0.3", default-features = false, features = [
  "env-filter",
  "fmt",
] }