Cargo.toml (209 lines of code) (raw):
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
[workspace]
members = [
"datafusion/common",
"datafusion/common-runtime",
"datafusion/catalog",
"datafusion/catalog-listing",
"datafusion/datasource",
"datafusion/datasource-avro",
"datafusion/datasource-csv",
"datafusion/datasource-json",
"datafusion/datasource-parquet",
"datafusion/core",
"datafusion/expr",
"datafusion/expr-common",
"datafusion/execution",
"datafusion/ffi",
"datafusion/functions",
"datafusion/functions-aggregate",
"datafusion/functions-aggregate-common",
"datafusion/functions-table",
"datafusion/functions-nested",
"datafusion/functions-window",
"datafusion/functions-window-common",
"datafusion/optimizer",
"datafusion/physical-expr",
"datafusion/physical-expr-common",
"datafusion/physical-optimizer",
"datafusion/physical-plan",
"datafusion/proto",
"datafusion/proto/gen",
"datafusion/proto-common",
"datafusion/proto-common/gen",
"datafusion/session",
"datafusion/spark",
"datafusion/sql",
"datafusion/sqllogictest",
"datafusion/substrait",
"datafusion/wasmtest",
"datafusion-cli",
"datafusion-examples",
"datafusion-examples/examples/ffi/ffi_example_table_provider",
"datafusion-examples/examples/ffi/ffi_module_interface",
"datafusion-examples/examples/ffi/ffi_module_loader",
"test-utils",
"benchmarks",
"datafusion/macros",
"datafusion/doc",
]
exclude = ["dev/depcheck"]
resolver = "2"
[workspace.package]
authors = ["Apache DataFusion <dev@datafusion.apache.org>"]
edition = "2021"
homepage = "https://datafusion.apache.org"
license = "Apache-2.0"
readme = "README.md"
repository = "https://github.com/apache/datafusion"
# Define Minimum Supported Rust Version (MSRV)
rust-version = "1.82.0"
# Define DataFusion version
version = "47.0.0"
[workspace.dependencies]
# We turn off default-features for some dependencies here so the workspaces which inherit them can
# selectively turn them on if needed, since we can override default-features = true (from false)
# for the inherited dependency but cannot do the reverse (override from true to false).
#
# See for more details: https://github.com/rust-lang/cargo/issues/11329
ahash = { version = "0.8", default-features = false, features = [
"runtime-rng",
] }
apache-avro = { version = "0.17", default-features = false }
arrow = { version = "55.0.0", features = [
"prettyprint",
"chrono-tz",
] }
arrow-buffer = { version = "55.0.0", default-features = false }
arrow-flight = { version = "55.0.0", features = [
"flight-sql-experimental",
] }
arrow-ipc = { version = "55.0.0", default-features = false, features = [
"lz4",
] }
arrow-ord = { version = "55.0.0", default-features = false }
arrow-schema = { version = "55.0.0", default-features = false }
async-trait = "0.1.88"
bigdecimal = "0.4.8"
bytes = "1.10"
chrono = { version = "0.4.41", default-features = false }
criterion = "0.5.1"
ctor = "0.2.9"
dashmap = "6.0.1"
datafusion = { path = "datafusion/core", version = "47.0.0", default-features = false }
datafusion-catalog = { path = "datafusion/catalog", version = "47.0.0" }
datafusion-catalog-listing = { path = "datafusion/catalog-listing", version = "47.0.0" }
datafusion-common = { path = "datafusion/common", version = "47.0.0", default-features = false }
datafusion-common-runtime = { path = "datafusion/common-runtime", version = "47.0.0" }
datafusion-datasource = { path = "datafusion/datasource", version = "47.0.0", default-features = false }
datafusion-datasource-avro = { path = "datafusion/datasource-avro", version = "47.0.0", default-features = false }
datafusion-datasource-csv = { path = "datafusion/datasource-csv", version = "47.0.0", default-features = false }
datafusion-datasource-json = { path = "datafusion/datasource-json", version = "47.0.0", default-features = false }
datafusion-datasource-parquet = { path = "datafusion/datasource-parquet", version = "47.0.0", default-features = false }
datafusion-doc = { path = "datafusion/doc", version = "47.0.0" }
datafusion-execution = { path = "datafusion/execution", version = "47.0.0" }
datafusion-expr = { path = "datafusion/expr", version = "47.0.0" }
datafusion-expr-common = { path = "datafusion/expr-common", version = "47.0.0" }
datafusion-ffi = { path = "datafusion/ffi", version = "47.0.0" }
datafusion-functions = { path = "datafusion/functions", version = "47.0.0" }
datafusion-functions-aggregate = { path = "datafusion/functions-aggregate", version = "47.0.0" }
datafusion-functions-aggregate-common = { path = "datafusion/functions-aggregate-common", version = "47.0.0" }
datafusion-functions-nested = { path = "datafusion/functions-nested", version = "47.0.0" }
datafusion-functions-table = { path = "datafusion/functions-table", version = "47.0.0" }
datafusion-functions-window = { path = "datafusion/functions-window", version = "47.0.0" }
datafusion-functions-window-common = { path = "datafusion/functions-window-common", version = "47.0.0" }
datafusion-macros = { path = "datafusion/macros", version = "47.0.0" }
datafusion-optimizer = { path = "datafusion/optimizer", version = "47.0.0", default-features = false }
datafusion-physical-expr = { path = "datafusion/physical-expr", version = "47.0.0", default-features = false }
datafusion-physical-expr-common = { path = "datafusion/physical-expr-common", version = "47.0.0", default-features = false }
datafusion-physical-optimizer = { path = "datafusion/physical-optimizer", version = "47.0.0" }
datafusion-physical-plan = { path = "datafusion/physical-plan", version = "47.0.0" }
datafusion-proto = { path = "datafusion/proto", version = "47.0.0" }
datafusion-proto-common = { path = "datafusion/proto-common", version = "47.0.0" }
datafusion-session = { path = "datafusion/session", version = "47.0.0" }
datafusion-spark = { path = "datafusion/spark", version = "47.0.0" }
datafusion-sql = { path = "datafusion/sql", version = "47.0.0" }
doc-comment = "0.3"
env_logger = "0.11"
futures = "0.3"
half = { version = "2.6.0", default-features = false }
hashbrown = { version = "0.14.5", features = ["raw"] }
indexmap = "2.9.0"
itertools = "0.14"
log = "^0.4"
object_store = { version = "0.12.0", default-features = false }
parking_lot = "0.12"
parquet = { version = "55.0.0", default-features = false, features = [
"arrow",
"async",
"object_store",
] }
pbjson = { version = "0.7.0" }
pbjson-types = "0.7"
# Should match arrow-flight's version of prost.
insta = { version = "1.41.1", features = ["glob", "filters"] }
prost = "0.13.1"
rand = "0.8.5"
recursive = "0.1.1"
regex = "1.8"
rstest = "0.24.0"
serde_json = "1"
sqlparser = { version = "0.55.0", features = ["visitor"] }
tempfile = "3"
tokio = { version = "1.44", features = ["macros", "rt", "sync"] }
url = "2.5.4"
[profile.release]
codegen-units = 1
lto = true
strip = true # Eliminate debug information to minimize binary size
# the release profile takes a long time to build so we can use this profile during development to save time
# cargo build --profile release-nonlto
[profile.release-nonlto]
codegen-units = 16
debug-assertions = false
incremental = false
inherits = "release"
lto = false
opt-level = 3
overflow-checks = false
rpath = false
strip = false # Retain debug info for flamegraphs
[profile.ci]
inherits = "dev"
incremental = false
# ci turns off debug info, etc. for dependencies to allow for smaller binaries making caching more effective
[profile.ci.package."*"]
debug = false
debug-assertions = false
strip = "debuginfo"
incremental = false
# release inherited profile keeping debug information and symbols
# for mem/cpu profiling
[profile.profiling]
inherits = "release"
debug = true
strip = false
[workspace.lints.clippy]
# Detects large stack-allocated futures that may cause stack overflow crashes (see threshold in clippy.toml)
large_futures = "warn"
used_underscore_binding = "warn"
or_fun_call = "warn"
unnecessary_lazy_evaluations = "warn"
[workspace.lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ["cfg(tarpaulin)"] }
unused_qualifications = "deny"