[package]
name = "datafusion"
description = "DataFusion is an in-memory query engine that uses Apache Arrow as the memory model"
version = "19.0.0"
homepage = "https://github.com/apache/arrow-datafusion"
repository = "https://github.com/apache/arrow-datafusion"
readme = "../../README.md"
authors = ["Apache Arrow <dev@arrow.apache.org>"]
license = "Apache-2.0"
keywords = ["arrow", "query", "sql"]
include = [
"benches/*.rs",
"src/**/*.rs",
"Cargo.toml",
]
edition = "2021"
rust-version = "1.62"
[lib]
name = "datafusion"
path = "src/lib.rs"
[features]
avro = ["apache-avro", "num-traits", "datafusion-common/avro"]
compression = ["xz2", "bzip2", "flate2", "async-compression"]
crypto_expressions = ["datafusion-physical-expr/crypto_expressions"]
default = ["crypto_expressions", "regex_expressions", "unicode_expressions", "compression"]
dictionary_expressions = ["datafusion-physical-expr/dictionary_expressions"]
force_hash_collisions = []
jit = ["datafusion-jit", "datafusion-row/jit"]
pyarrow = ["datafusion-common/pyarrow"]
regex_expressions = ["datafusion-physical-expr/regex_expressions"]
scheduler = ["rayon"]
simd = ["arrow/simd"]
unicode_expressions = ["datafusion-physical-expr/regex_expressions", "datafusion-sql/unicode_expressions"]
[dependencies]
ahash = { version = "0.8", default-features = false, features = ["runtime-rng"] }
apache-avro = { version = "0.14", optional = true }
arrow = { version = "33.0.0", features = ["prettyprint"] }
async-compression = { version = "0.3.14", features = ["bzip2", "gzip", "xz", "futures-io", "tokio"], optional = true }
async-trait = "0.1.41"
bytes = "1.1"
bzip2 = { version = "0.4.3", optional = true }
chrono = { version = "0.4.23", default-features = false }
dashmap = "5.4.0"
datafusion-common = { path = "../common", version = "19.0.0", features = ["parquet", "object_store"] }
datafusion-expr = { path = "../expr", version = "19.0.0" }
datafusion-jit = { path = "../jit", version = "19.0.0", optional = true }
datafusion-optimizer = { path = "../optimizer", version = "19.0.0" }
datafusion-physical-expr = { path = "../physical-expr", version = "19.0.0" }
datafusion-row = { path = "../row", version = "19.0.0" }
datafusion-sql = { path = "../sql", version = "19.0.0" }
flate2 = { version = "1.0.24", optional = true }
futures = "0.3"
glob = "0.3.0"
hashbrown = { version = "0.13", features = ["raw"] }
indexmap = "1.9.2"
itertools = "0.10"
lazy_static = { version = "^1.4.0" }
log = "^0.4"
num-traits = { version = "0.2", optional = true }
num_cpus = "1.13.0"
object_store = "0.5.4"
parking_lot = "0.12"
parquet = { version = "33.0.0", features = ["arrow", "async"] }
paste = "^1.0"
percent-encoding = "2.2.0"
pin-project-lite = "^0.2.7"
rand = "0.8"
rayon = { version = "1.5", optional = true }
smallvec = { version = "1.6", features = ["union"] }
sqlparser = { version = "0.30", features = ["visitor"] }
tempfile = "3"
tokio = { version = "1.0", features = ["macros", "rt", "rt-multi-thread", "sync", "fs", "parking_lot"] }
tokio-stream = "0.1"
tokio-util = { version = "0.7.4", features = ["io"] }
url = "2.2"
uuid = { version = "1.0", features = ["v4"] }
xz2 = { version = "0.1", optional = true }
[dev-dependencies]
async-trait = "0.1.53"
bigdecimal = "0.3.0"
criterion = "0.4"
csv = "1.1.6"
ctor = "0.1.22"
doc-comment = "0.3"
env_logger = "0.10"
half = "2.2.1"
parquet-test-utils = { path = "../../parquet-test-utils" }
postgres-protocol = "0.6.4"
postgres-types = { version = "0.2.4", features = ["derive", "with-chrono-0_4"] }
rstest = "0.16.0"
rust_decimal = { version = "1.27.0", features = ["tokio-pg"] }
sqllogictest = "0.13.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"
required-features = ["scheduler"]
[[bench]]
harness = false
name = "sql_planner"
[[bench]]
harness = false
name = "jit"
required-features = ["jit"]
[[bench]]
harness = false
name = "merge"
[[bench]]
harness = false
name = "sort"
[[test]]
harness = false
name = "sqllogictests"
path = "tests/sqllogictests/src/main.rs"