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"