[workspace]
members = [
"benchmarks",
"cli",
"console",
]
[workspace.dependencies]
datafusion = { version = "55", default-features = false }
datafusion-proto = { version = "55", default-features = false }
[package]
name = "datafusion-distributed"
version = "4.0.0"
edition = "2024"
description = "Framework for enhancing Apache DataFusion with distributed capabilities"
license = "Apache-2.0"
documentation = "https://datafusion-contrib.github.io/datafusion-distributed/"
repository = "https://github.com/datafusion-contrib/datafusion-distributed"
[dependencies]
chrono = { version = "0.4.44" }
datafusion = { workspace = true, features = [
"unicode_expressions",
"datetime_expressions",
] }
datafusion-proto = { workspace = true }
async-trait = "0.1.89"
tokio = { version = "1.48", features = ["full"] }
http = "1.3.1"
itertools = "0.14.0"
futures = "0.3.31"
url = "2.5.7"
uuid = "1.19"
delegate = "0.13.4"
dashmap = "6.0.1"
prost = "0.14.1"
rand = "0.9"
object_store = "0.13"
bytes = "1.11"
pin-project = "1.1.10"
tokio-stream = { version = "0.1.17", features = ["sync"] }
tokio-util = "0.7"
moka = { version = "0.12", features = ["sync", "future"] }
crossbeam-queue = "0.3"
sysinfo = { version = "0.30", optional = true }
sketches-ddsketch = { version = "0.3", features = ["use_serde"] }
num-traits = "0.2"
bincode = "1"
tonic-prost = "0.14.2"
arrow-flight = { version = "59", optional = true }
arrow-select = { version = "59", optional = true }
arrow-ipc = { version = "59", features = ["zstd"], optional = true }
tonic = { version = "0.14.1", features = ["transport"], optional = true }
tower = { version = "0.5.2", optional = true }
insta = { version = "1.46.0", features = ["filters"], optional = true }
parquet = { version = "59", optional = true }
arrow = { version = "59", optional = true, features = ["test_utils"] }
hyper-util = { version = "0.1.16", optional = true }
[features]
default = ["grpc", "parquet", "sql"]
parquet = ["datafusion/parquet", "datafusion-proto/parquet"]
sql = ["datafusion/sql"]
avro = ["datafusion/avro"]
grpc = [
"arrow-flight",
"arrow-select",
"arrow-ipc",
"tonic",
"tower"
]
integration = ["insta", "dep:parquet", "arrow", "hyper-util", "grpc", "parquet", "sql"]
system-metrics = ["sysinfo"]
tpch = ["integration"]
tpcds = ["integration"]
clickbench = ["integration"]
slow-tests = []
sysinfo = ["dep:sysinfo"]
[dev-dependencies]
datafusion-distributed-benchmarks = { path = "benchmarks" }
datafusion = { workspace = true, features = ["parquet", "sql"] }
datafusion-proto = { workspace = true, features = ["parquet"] }
structopt = "0.3"
insta = { version = "1.46.0", features = ["filters"] }
parquet = "59"
arrow = { version = "59", features = ["test_utils"] }
tokio-stream = { version = "0.1.17", features = ["sync"] }
hyper-util = "0.1.16"
pretty_assertions = "1.4"
test-case = "3.3.1"
[workspace.lints.clippy]
disallowed_types = "deny"
disallowed-methods = "deny"