# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2021"
rust-version = "1.86.0"
name = "datafusion"
version = "50.3.0"
authors = ["Apache DataFusion <dev@datafusion.apache.org>"]
build = false
include = [
    "benches/*.rs",
    "src/**/*.rs",
    "Cargo.toml",
    "LICENSE.txt",
    "NOTICE.txt",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "DataFusion is an in-memory query engine that uses Apache Arrow as the memory model"
homepage = "https://datafusion.apache.org"
readme = "README.md"
keywords = [
    "arrow",
    "query",
    "sql",
]
license = "Apache-2.0"
repository = "https://github.com/apache/datafusion"

[package.metadata.docs.rs]
all-features = true

[features]
array_expressions = ["nested_expressions"]
avro = [
    "datafusion-common/avro",
    "datafusion-datasource-avro",
]
backtrace = ["datafusion-common/backtrace"]
compression = [
    "xz2",
    "bzip2",
    "flate2",
    "zstd",
    "arrow-ipc/zstd",
    "datafusion-datasource/compression",
]
crypto_expressions = ["datafusion-functions/crypto_expressions"]
datetime_expressions = ["datafusion-functions/datetime_expressions"]
default = [
    "nested_expressions",
    "crypto_expressions",
    "datetime_expressions",
    "encoding_expressions",
    "regex_expressions",
    "string_expressions",
    "unicode_expressions",
    "compression",
    "parquet",
    "recursive_protection",
]
encoding_expressions = ["datafusion-functions/encoding_expressions"]
extended_tests = []
force_hash_collisions = [
    "datafusion-physical-plan/force_hash_collisions",
    "datafusion-common/force_hash_collisions",
]
math_expressions = ["datafusion-functions/math_expressions"]
nested_expressions = ["datafusion-functions-nested"]
parquet = [
    "datafusion-common/parquet",
    "dep:parquet",
    "datafusion-datasource-parquet",
]
parquet_encryption = [
    "parquet",
    "parquet/encryption",
    "datafusion-common/parquet_encryption",
    "datafusion-datasource-parquet/parquet_encryption",
    "dep:hex",
]
pyarrow = [
    "datafusion-common/pyarrow",
    "parquet",
]
recursive_protection = [
    "datafusion-common/recursive_protection",
    "datafusion-expr/recursive_protection",
    "datafusion-optimizer/recursive_protection",
    "datafusion-physical-optimizer/recursive_protection",
    "datafusion-sql/recursive_protection",
    "sqlparser/recursive-protection",
]
regex_expressions = ["datafusion-functions/regex_expressions"]
serde = [
    "dep:serde",
    "arrow-schema/serde",
]
string_expressions = ["datafusion-functions/string_expressions"]
unicode_expressions = [
    "datafusion-sql/unicode_expressions",
    "datafusion-functions/unicode_expressions",
]

[lib]
name = "datafusion"
path = "src/lib.rs"

[[bin]]
name = "print_config_docs"
path = "src/bin/print_config_docs.rs"

[[bin]]
name = "print_functions_docs"
path = "src/bin/print_functions_docs.rs"

[[bin]]
name = "print_runtime_config_docs"
path = "src/bin/print_runtime_config_docs.rs"

[[bench]]
name = "aggregate_query_sql"
path = "benches/aggregate_query_sql.rs"
harness = false

[[bench]]
name = "csv_load"
path = "benches/csv_load.rs"
harness = false

[[bench]]
name = "dataframe"
path = "benches/dataframe.rs"
harness = false

[[bench]]
name = "distinct_query_sql"
path = "benches/distinct_query_sql.rs"
harness = false

[[bench]]
name = "filter_query_sql"
path = "benches/filter_query_sql.rs"
harness = false

[[bench]]
name = "map_query_sql"
path = "benches/map_query_sql.rs"
harness = false
required-features = ["nested_expressions"]

[[bench]]
name = "math_query_sql"
path = "benches/math_query_sql.rs"
harness = false

[[bench]]
name = "parquet_query_sql"
path = "benches/parquet_query_sql.rs"
harness = false
required-features = ["parquet"]

[[bench]]
name = "physical_plan"
path = "benches/physical_plan.rs"
harness = false

[[bench]]
name = "push_down_filter"
path = "benches/push_down_filter.rs"
harness = false

[[bench]]
name = "scalar"
path = "benches/scalar.rs"
harness = false

[[bench]]
name = "sort"
path = "benches/sort.rs"
harness = false

[[bench]]
name = "sort_limit_query_sql"
path = "benches/sort_limit_query_sql.rs"
harness = false

[[bench]]
name = "spm"
path = "benches/spm.rs"
harness = false

[[bench]]
name = "sql_planner"
path = "benches/sql_planner.rs"
harness = false

[[bench]]
name = "sql_query_with_io"
path = "benches/sql_query_with_io.rs"
harness = false

[[bench]]
name = "struct_query_sql"
path = "benches/struct_query_sql.rs"
harness = false

[[bench]]
name = "topk_aggregate"
path = "benches/topk_aggregate.rs"
harness = false

[[bench]]
name = "window_query_sql"
path = "benches/window_query_sql.rs"
harness = false

[dependencies.arrow]
version = "56.0.0"
features = [
    "prettyprint",
    "chrono-tz",
]

[dependencies.arrow-ipc]
version = "56.0.0"
features = ["lz4"]
default-features = false

[dependencies.arrow-schema]
version = "56.0.0"
features = ["canonical_extension_types"]
default-features = false

[dependencies.async-trait]
version = "0.1.89"

[dependencies.bytes]
version = "1.10"

[dependencies.bzip2]
version = "0.6.0"
optional = true

[dependencies.chrono]
version = "0.4.41"
default-features = false

[dependencies.datafusion-catalog]
version = "50.3.0"

[dependencies.datafusion-catalog-listing]
version = "50.3.0"

[dependencies.datafusion-common]
version = "50.3.0"
features = ["object_store"]
default-features = false

[dependencies.datafusion-common-runtime]
version = "50.3.0"

[dependencies.datafusion-datasource]
version = "50.3.0"
default-features = false

[dependencies.datafusion-datasource-avro]
version = "50.3.0"
optional = true
default-features = false

[dependencies.datafusion-datasource-csv]
version = "50.3.0"
default-features = false

[dependencies.datafusion-datasource-json]
version = "50.3.0"
default-features = false

[dependencies.datafusion-datasource-parquet]
version = "50.3.0"
optional = true
default-features = false

[dependencies.datafusion-execution]
version = "50.3.0"

[dependencies.datafusion-expr]
version = "50.3.0"

[dependencies.datafusion-expr-common]
version = "50.3.0"

[dependencies.datafusion-functions]
version = "50.3.0"

[dependencies.datafusion-functions-aggregate]
version = "50.3.0"

[dependencies.datafusion-functions-nested]
version = "50.3.0"
optional = true

[dependencies.datafusion-functions-table]
version = "50.3.0"

[dependencies.datafusion-functions-window]
version = "50.3.0"

[dependencies.datafusion-optimizer]
version = "50.3.0"
default-features = false

[dependencies.datafusion-physical-expr]
version = "50.3.0"
default-features = false

[dependencies.datafusion-physical-expr-adapter]
version = "50.3.0"
default-features = false

[dependencies.datafusion-physical-expr-common]
version = "50.3.0"
default-features = false

[dependencies.datafusion-physical-optimizer]
version = "50.3.0"

[dependencies.datafusion-physical-plan]
version = "50.3.0"

[dependencies.datafusion-session]
version = "50.3.0"

[dependencies.datafusion-sql]
version = "50.3.0"

[dependencies.flate2]
version = "1.1.2"
optional = true

[dependencies.futures]
version = "0.3"

[dependencies.hex]
version = "0.4.3"
optional = true

[dependencies.itertools]
version = "0.14"

[dependencies.log]
version = "^0.4"

[dependencies.object_store]
version = "0.12.3"
default-features = false

[dependencies.parking_lot]
version = "0.12"

[dependencies.parquet]
version = "56.0.0"
features = [
    "arrow",
    "async",
    "object_store",
    "encryption",
]
optional = true
default-features = true

[dependencies.rand]
version = "0.9"

[dependencies.regex]
version = "1.11"

[dependencies.serde]
version = "1.0"
features = ["derive"]
optional = true
default-features = false

[dependencies.sqlparser]
version = "0.58.0"
features = [
    "std",
    "visitor",
]
default-features = false

[dependencies.tempfile]
version = "3"

[dependencies.tokio]
version = "1.47"
features = [
    "macros",
    "rt",
    "sync",
]

[dependencies.url]
version = "2.5.7"

[dependencies.uuid]
version = "1.18"
features = [
    "v4",
    "js",
]

[dependencies.xz2]
version = "0.1"
features = ["static"]
optional = true

[dependencies.zstd]
version = "0.13"
optional = true
default-features = false

[dev-dependencies.async-trait]
version = "0.1.89"

[dev-dependencies.criterion]
version = "0.5.1"
features = [
    "async_tokio",
    "async_futures",
]

[dev-dependencies.ctor]
version = "0.4.3"

[dev-dependencies.dashmap]
version = "6.1.0"

[dev-dependencies.datafusion-doc]
version = "50.3.0"

[dev-dependencies.datafusion-functions-window-common]
version = "50.3.0"

[dev-dependencies.datafusion-macros]
version = "50.3.0"

[dev-dependencies.datafusion-physical-optimizer]
version = "50.3.0"

[dev-dependencies.doc-comment]
version = "0.3"

[dev-dependencies.env_logger]
version = "0.11"

[dev-dependencies.glob]
version = "0.3.0"

[dev-dependencies.insta]
version = "1.43.2"
features = [
    "glob",
    "filters",
]

[dev-dependencies.paste]
version = "^1.0"

[dev-dependencies.rand]
version = "0.9"
features = ["small_rng"]

[dev-dependencies.rand_distr]
version = "0.5"

[dev-dependencies.regex]
version = "1.11"

[dev-dependencies.rstest]
version = "0.25.0"

[dev-dependencies.serde_json]
version = "1"

[dev-dependencies.sysinfo]
version = "0.37.0"

[dev-dependencies.tokio]
version = "1.47"
features = [
    "macros",
    "rt",
    "sync",
    "rt-multi-thread",
    "parking_lot",
    "fs",
]

[target.'cfg(not(target_os = "windows"))'.dev-dependencies.nix]
version = "0.30.1"
features = ["fs"]

[lints.clippy]
large_futures = "warn"
or_fun_call = "warn"
uninlined_format_args = "warn"
unnecessary_lazy_evaluations = "warn"
used_underscore_binding = "warn"

[lints.rust]
unused_qualifications = "deny"

[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = [
    'cfg(datafusion_coop, values("tokio", "tokio_fallback", "per_stream"))',
    "cfg(tarpaulin)",
    "cfg(tarpaulin_include)",
]
