blob: cc08aa1bbb82185971c5db0ec469f61ff237f0ca [file]
# 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]
default-members = ["core", "spark-expr", "proto"]
members = ["core", "spark-expr", "proto", "hdfs", "fs-hdfs"]
resolver = "2"
[workspace.package]
version = "0.15.0"
homepage = "https://datafusion.apache.org/comet"
repository = "https://github.com/apache/datafusion-comet"
authors = ["Apache DataFusion <dev@datafusion.apache.org>"]
description = "Apache DataFusion Comet: High performance accelerator for Apache Spark"
readme = "README.md"
license = "Apache-2.0"
edition = "2021"
# Comet uses the same minimum Rust version as DataFusion
rust-version = "1.88"
[workspace.dependencies]
arrow = { version = "57.3.0", features = ["prettyprint", "ffi", "chrono-tz"] }
async-trait = { version = "0.1" }
bytes = { version = "1.11.1" }
parquet = { version = "57.3.0", default-features = false, features = ["experimental"] }
datafusion = { version = "52.3.0", default-features = false, features = ["unicode_expressions", "crypto_expressions", "nested_expressions", "parquet"] }
datafusion-datasource = { version = "52.3.0" }
datafusion-physical-expr-adapter = { version = "52.3.0" }
datafusion-spark = { version = "52.3.0" }
datafusion-comet-spark-expr = { path = "spark-expr" }
datafusion-comet-proto = { path = "proto" }
chrono = { version = "0.4", default-features = false, features = ["clock"] }
chrono-tz = { version = "0.10" }
futures = "0.3.32"
num = "0.4"
rand = "0.10"
regex = "1.12.3"
thiserror = "2"
object_store = { version = "0.12.3", features = ["gcp", "azure", "aws", "http"] }
url = "2.2"
aws-config = "1.8.14"
aws-credential-types = "1.2.13"
iceberg = { git = "https://github.com/apache/iceberg-rust", tag = "v0.9.0-rc.1" }
iceberg-storage-opendal = { git = "https://github.com/apache/iceberg-rust", tag = "v0.9.0-rc.1", features = ["opendal-all"] }
[profile.release]
debug = true
overflow-checks = false
lto = "thin"
codegen-units = 1
strip = "debuginfo"
# CI profile: faster compilation, same overflow behavior as release
# Use with: cargo build --profile ci
[profile.ci]
inherits = "release"
lto = false # Skip LTO for faster linking
codegen-units = 16 # Parallel codegen (faster compile, slightly larger binary)
debug-assertions = true
panic = "unwind" # Allow panics to be caught and logged across FFI boundary
# overflow-checks inherited as false from release