datafusion-ffi 52.2.0

Foreign Function Interface implementation for DataFusion
Documentation
# 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 = "2024"
rust-version = "1.88.0"
name = "datafusion-ffi"
version = "52.2.0"
authors = ["Apache DataFusion <dev@datafusion.apache.org>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Foreign Function Interface implementation for DataFusion"
homepage = "https://datafusion.apache.org"
readme = "README.md"
license = "Apache-2.0"
repository = "https://github.com/apache/datafusion"
resolver = "2"

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

[features]
integration-tests = [
    "datafusion-functions",
    "datafusion-functions-aggregate",
    "datafusion-functions-table",
    "datafusion-functions-window",
]
tarpaulin_include = []

[lib]
name = "datafusion_ffi"
crate-type = [
    "cdylib",
    "rlib",
]
path = "src/lib.rs"

[[test]]
name = "ffi_catalog"
path = "tests/ffi_catalog.rs"

[[test]]
name = "ffi_integration"
path = "tests/ffi_integration.rs"

[[test]]
name = "ffi_udaf"
path = "tests/ffi_udaf.rs"

[[test]]
name = "ffi_udf"
path = "tests/ffi_udf.rs"

[[test]]
name = "ffi_udtf"
path = "tests/ffi_udtf.rs"

[[test]]
name = "ffi_udwf"
path = "tests/ffi_udwf.rs"

[dependencies.abi_stable]
version = "0.11.3"

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

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

[dependencies.async-ffi]
version = "0.5.0"
features = ["abi_stable"]

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

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

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

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

[dependencies.datafusion-execution]
version = "52.2.0"
default-features = false

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

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

[dependencies.datafusion-functions-aggregate]
version = "52.2.0"
optional = true

[dependencies.datafusion-functions-aggregate-common]
version = "52.2.0"

[dependencies.datafusion-functions-table]
version = "52.2.0"
optional = true

[dependencies.datafusion-functions-window]
version = "52.2.0"
optional = true

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

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

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

[dependencies.datafusion-proto]
version = "52.2.0"

[dependencies.datafusion-proto-common]
version = "52.2.0"

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

[dependencies.futures]
version = "0.3"

[dependencies.log]
version = "^0.4"

[dependencies.prost]
version = "0.14.1"

[dependencies.semver]
version = "1.0.27"

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

[dev-dependencies.datafusion]
version = "52.2.0"
features = ["sql"]
default-features = false

[dev-dependencies.datafusion-functions]
version = "52.2.0"

[dev-dependencies.datafusion-functions-aggregate]
version = "52.2.0"

[dev-dependencies.datafusion-functions-aggregate-common]
version = "52.2.0"

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

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

[lints.clippy]
inefficient_to_string = "warn"
large_futures = "warn"
needless_pass_by_value = "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)",
]