blob: dd91130c5add0135517facf68f62c59916e64c4e [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.
[package]
name = "datafusion-comet"
version = { workspace = true }
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"
include = [
"benches/*.rs",
"src/**/*.rs",
"Cargo.toml",
]
# this crate is used in the Spark plugin and does not contain public Rust APIs so we do not publish this crate
publish = false
[dependencies]
arrow = { workspace = true }
arrow-array = { workspace = true }
arrow-buffer = { workspace = true }
arrow-data = { workspace = true }
arrow-schema = { workspace = true }
parquet = { workspace = true, default-features = false, features = ["experimental"] }
futures = { workspace = true }
mimalloc = { version = "*", default-features = false, optional = true }
tokio = { version = "1", features = ["rt-multi-thread"] }
async-trait = { workspace = true }
log = "0.4"
log4rs = "1.2.0"
thiserror = { workspace = true }
serde = { version = "1", features = ["derive"] }
lazy_static = "1.4.0"
prost = "0.12.1"
jni = "0.21"
snap = "1.1"
# we disable default features in lz4_flex to force the use of the faster unsafe encoding and decoding implementation
lz4_flex = { version = "0.11.3", default-features = false }
zstd = "0.11"
rand = { workspace = true}
num = { workspace = true }
bytes = { workspace = true }
tempfile = "3.8.0"
itertools = "0.14.0"
paste = "1.0.14"
datafusion-common = { workspace = true, features= ["object_store"] }
datafusion = { workspace = true }
datafusion-functions-nested = { workspace = true }
datafusion-expr = { workspace = true }
datafusion-execution = { workspace = true }
datafusion-physical-expr = { workspace = true }
once_cell = "1.18.0"
regex = { workspace = true }
crc32fast = "1.3.2"
simd-adler32 = "0.3.7"
datafusion-comet-spark-expr = { workspace = true }
datafusion-comet-proto = { workspace = true }
object_store = { workspace = true }
url = { workspace = true }
parking_lot = "0.12.3"
datafusion-comet-objectstore-hdfs = { path = "../hdfs", optional = true}
[dev-dependencies]
pprof = { version = "0.14.0", features = ["flamegraph"] }
criterion = { version = "0.5.1", features = ["async_tokio"] }
jni = { version = "0.21", features = ["invocation"] }
lazy_static = "1.4"
assertables = "7"
hex = "0.4.3"
[features]
default = []
hdfs=["datafusion-comet-objectstore-hdfs"]
# exclude optional packages from cargo machete verifications
[package.metadata.cargo-machete]
ignored = ["datafusion-comet-objectstore-hdfs"]
[lib]
name = "comet"
# "rlib" is for benchmarking with criterion.
crate-type = ["cdylib", "rlib"]
[[bench]]
name = "parquet_read"
harness = false
[[bench]]
name = "bit_util"
harness = false
[[bench]]
name = "row_columnar"
harness = false
[[bench]]
name = "shuffle_writer"
harness = false
[[bench]]
name = "parquet_decode"
harness = false
[[bench]]
name = "filter"
harness = false
[[bench]]
name = "bloom_filter_agg"
harness = false