native/core/Cargo.toml (111 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.
[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 }
parquet = { workspace = true, default-features = false, features = ["experimental"] }
futures = { workspace = true }
mimalloc = { version = "*", default-features = false, optional = true }
tikv-jemallocator = { version = "0.6.0", optional = true, features = ["disable_initial_exec_tls"] }
tikv-jemalloc-ctl = { version = "0.6.0", optional = true, features = ["disable_initial_exec_tls", "stats"] }
tokio = { version = "1", features = ["rt-multi-thread"] }
async-trait = { workspace = true }
log = "0.4"
log4rs = "1.2.0"
thiserror = { workspace = true }
lazy_static = "1.4.0"
prost = "0.13.5"
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.13.3"
rand = { workspace = true }
num = { workspace = true }
bytes = { workspace = true }
tempfile = "3.8.0"
itertools = "0.14.0"
paste = "1.0.14"
datafusion = { 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, default-features = false, features = ["hdfs"] }
[target.'cfg(target_os = "linux")'.dependencies]
procfs = "0.17.0"
[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 = "9"
hex = "0.4.3"
datafusion-functions-nested = { version = "47.0.0" }
[features]
default = []
hdfs = ["datafusion-comet-objectstore-hdfs"]
jemalloc = ["tikv-jemallocator", "tikv-jemalloc-ctl"]
# 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