datafusion/core/Cargo.toml (150 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" description = "DataFusion is an in-memory query engine that uses Apache Arrow as the memory model" keywords = ["arrow", "query", "sql"] include = ["benches/*.rs", "src/**/*.rs", "Cargo.toml"] version = { workspace = true } edition = { workspace = true } readme = { workspace = true } homepage = { workspace = true } repository = { workspace = true } license = { workspace = true } authors = { workspace = true } rust-version = "1.70" [lib] name = "datafusion" path = "src/lib.rs" [features] # Used to enable the avro format avro = ["apache-avro", "num-traits", "datafusion-common/avro"] compression = ["xz2", "bzip2", "flate2", "zstd", "async-compression"] crypto_expressions = ["datafusion-physical-expr/crypto_expressions", "datafusion-optimizer/crypto_expressions"] default = ["crypto_expressions", "encoding__expressions", "regex_expressions", "unicode_expressions", "compression"] # Enables support for non-scalar, binary operations on dictionaries # Note: this results in significant additional codegen dictionary_expressions = ["datafusion-physical-expr/dictionary_expressions", "datafusion-optimizer/dictionary_expressions"] encoding__expressions = ["datafusion-physical-expr/encoding_expressions"] # Used for testing ONLY: causes all values to hash to the same value (test for collisions) force_hash_collisions = [] pyarrow = ["datafusion-common/pyarrow"] regex_expressions = ["datafusion-physical-expr/regex_expressions", "datafusion-optimizer/regex_expressions"] simd = ["arrow/simd"] unicode_expressions = ["datafusion-physical-expr/unicode_expressions", "datafusion-optimizer/unicode_expressions", "datafusion-sql/unicode_expressions"] [dependencies] ahash = { version = "0.8", default-features = false, features = ["runtime-rng"] } apache-avro = { version = "0.15", optional = true } arrow = { workspace = true } arrow-array = { workspace = true } arrow-schema = { workspace = true } async-compression = { version = "0.4.0", features = ["bzip2", "gzip", "xz", "zstd", "futures-io", "tokio"], optional = true } async-trait = "0.1.41" bytes = "1.4" bzip2 = { version = "0.4.3", optional = true } chrono = { version = "0.4.23", default-features = false } dashmap = "5.4.0" datafusion-common = { path = "../common", version = "28.0.0", features = ["parquet", "object_store"] } datafusion-execution = { path = "../execution", version = "28.0.0" } datafusion-expr = { path = "../expr", version = "28.0.0" } datafusion-optimizer = { path = "../optimizer", version = "28.0.0", default-features = false } datafusion-physical-expr = { path = "../physical-expr", version = "28.0.0", default-features = false } datafusion-sql = { path = "../sql", version = "28.0.0" } flate2 = { version = "1.0.24", optional = true } futures = "0.3" glob = "0.3.0" half = { version = "2.1", default-features = false } hashbrown = { version = "0.14", features = ["raw"] } indexmap = "2.0.0" itertools = "0.11" lazy_static = { version = "^1.4.0" } log = "^0.4" num-traits = { version = "0.2", optional = true } num_cpus = "1.13.0" object_store = "0.6.1" parking_lot = "0.12" parquet = { workspace = true } percent-encoding = "2.2.0" pin-project-lite = "^0.2.7" rand = "0.8" smallvec = { version = "1.6", features = ["union"] } sqlparser = { workspace = true } tempfile = "3" tokio = { version = "1.0", features = ["macros", "rt", "rt-multi-thread", "sync", "fs", "parking_lot"] } tokio-util = { version = "0.7.4", features = ["io"] } url = "2.2" uuid = { version = "1.0", features = ["v4"] } xz2 = { version = "0.1", optional = true } zstd = { version = "0.12", optional = true, default-features = false } [dev-dependencies] async-trait = "0.1.53" bigdecimal = "0.4.1" criterion = { version = "0.5", features = ["async_tokio"] } csv = "1.1.6" ctor = "0.2.0" datafusion-sqllogictest = { path = "../sqllogictest", version = "28.0.0", features = ["postgres"] } doc-comment = "0.3" env_logger = "0.10" half = "2.2.1" postgres-protocol = "0.6.4" postgres-types = { version = "0.2.4", features = ["derive", "with-chrono-0_4"] } regex = "1.5.4" rstest = "0.18.0" rust_decimal = { version = "1.27.0", features = ["tokio-pg"] } sqllogictest = "0.15.0" test-utils = { path = "../../test-utils" } thiserror = "1.0.37" tokio-postgres = "0.7.7" [target.'cfg(not(target_os = "windows"))'.dev-dependencies] nix = "0.26.1" [[bench]] harness = false name = "aggregate_query_sql" [[bench]] harness = false name = "sort_limit_query_sql" [[bench]] harness = false name = "math_query_sql" [[bench]] harness = false name = "filter_query_sql" [[bench]] harness = false name = "window_query_sql" [[bench]] harness = false name = "scalar" [[bench]] harness = false name = "physical_plan" [[bench]] harness = false name = "parquet_query_sql" [[bench]] harness = false name = "sql_planner" [[bench]] harness = false name = "sql_query_with_io" [[bench]] harness = false name = "sort" [[test]] harness = false name = "sqllogictests" path = "tests/sqllogictests/src/main.rs"