[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)",
]