[package]
edition = "2024"
rust-version = "1.88.0"
name = "datafusion-functions"
version = "52.1.0"
authors = ["Apache DataFusion <dev@datafusion.apache.org>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Function packages for the DataFusion query engine"
homepage = "https://datafusion.apache.org"
readme = "README.md"
keywords = [
"datafusion",
"logical",
"plan",
"expressions",
]
license = "Apache-2.0"
repository = "https://github.com/apache/datafusion"
resolver = "2"
[package.metadata.docs.rs]
all-features = true
[features]
crypto_expressions = [
"md-5",
"sha2",
"blake2",
"blake3",
]
datetime_expressions = ["chrono-tz"]
default = [
"datetime_expressions",
"encoding_expressions",
"math_expressions",
"regex_expressions",
"string_expressions",
"unicode_expressions",
]
encoding_expressions = [
"base64",
"hex",
]
math_expressions = []
regex_expressions = ["regex"]
string_expressions = ["uuid"]
unicode_expressions = ["unicode-segmentation"]
[lib]
name = "datafusion_functions"
path = "src/lib.rs"
[[bench]]
name = "ascii"
path = "benches/ascii.rs"
harness = false
required-features = ["string_expressions"]
[[bench]]
name = "character_length"
path = "benches/character_length.rs"
harness = false
required-features = ["unicode_expressions"]
[[bench]]
name = "chr"
path = "benches/chr.rs"
harness = false
required-features = ["string_expressions"]
[[bench]]
name = "concat"
path = "benches/concat.rs"
harness = false
required-features = ["string_expressions"]
[[bench]]
name = "contains"
path = "benches/contains.rs"
harness = false
required-features = ["string_expressions"]
[[bench]]
name = "cot"
path = "benches/cot.rs"
harness = false
required-features = ["math_expressions"]
[[bench]]
name = "crypto"
path = "benches/crypto.rs"
harness = false
required-features = ["crypto_expressions"]
[[bench]]
name = "date_bin"
path = "benches/date_bin.rs"
harness = false
required-features = ["datetime_expressions"]
[[bench]]
name = "date_trunc"
path = "benches/date_trunc.rs"
harness = false
required-features = ["datetime_expressions"]
[[bench]]
name = "encoding"
path = "benches/encoding.rs"
harness = false
required-features = ["encoding_expressions"]
[[bench]]
name = "ends_with"
path = "benches/ends_with.rs"
harness = false
required-features = ["string_expressions"]
[[bench]]
name = "factorial"
path = "benches/factorial.rs"
harness = false
required-features = ["math_expressions"]
[[bench]]
name = "find_in_set"
path = "benches/find_in_set.rs"
harness = false
required-features = ["unicode_expressions"]
[[bench]]
name = "gcd"
path = "benches/gcd.rs"
harness = false
required-features = ["math_expressions"]
[[bench]]
name = "helper"
path = "benches/helper.rs"
[[bench]]
name = "initcap"
path = "benches/initcap.rs"
harness = false
required-features = ["unicode_expressions"]
[[bench]]
name = "isnan"
path = "benches/isnan.rs"
harness = false
required-features = ["math_expressions"]
[[bench]]
name = "iszero"
path = "benches/iszero.rs"
harness = false
required-features = ["math_expressions"]
[[bench]]
name = "left"
path = "benches/left.rs"
harness = false
required-features = ["unicode_expressions"]
[[bench]]
name = "levenshtein"
path = "benches/levenshtein.rs"
harness = false
required-features = ["unicode_expressions"]
[[bench]]
name = "lower"
path = "benches/lower.rs"
harness = false
required-features = ["string_expressions"]
[[bench]]
name = "make_date"
path = "benches/make_date.rs"
harness = false
required-features = ["datetime_expressions"]
[[bench]]
name = "nullif"
path = "benches/nullif.rs"
harness = false
[[bench]]
name = "pad"
path = "benches/pad.rs"
harness = false
required-features = ["unicode_expressions"]
[[bench]]
name = "random"
path = "benches/random.rs"
harness = false
required-features = ["math_expressions"]
[[bench]]
name = "regexp_count"
path = "benches/regexp_count.rs"
harness = false
required-features = ["regex_expressions"]
[[bench]]
name = "regx"
path = "benches/regx.rs"
harness = false
required-features = ["regex_expressions"]
[[bench]]
name = "repeat"
path = "benches/repeat.rs"
harness = false
required-features = ["string_expressions"]
[[bench]]
name = "replace"
path = "benches/replace.rs"
harness = false
required-features = ["string_expressions"]
[[bench]]
name = "reverse"
path = "benches/reverse.rs"
harness = false
required-features = ["unicode_expressions"]
[[bench]]
name = "signum"
path = "benches/signum.rs"
harness = false
required-features = ["math_expressions"]
[[bench]]
name = "starts_with"
path = "benches/starts_with.rs"
harness = false
required-features = ["string_expressions"]
[[bench]]
name = "strpos"
path = "benches/strpos.rs"
harness = false
required-features = ["unicode_expressions"]
[[bench]]
name = "substr"
path = "benches/substr.rs"
harness = false
required-features = ["unicode_expressions"]
[[bench]]
name = "substr_index"
path = "benches/substr_index.rs"
harness = false
required-features = ["unicode_expressions"]
[[bench]]
name = "to_char"
path = "benches/to_char.rs"
harness = false
required-features = ["datetime_expressions"]
[[bench]]
name = "to_hex"
path = "benches/to_hex.rs"
harness = false
required-features = ["string_expressions"]
[[bench]]
name = "to_timestamp"
path = "benches/to_timestamp.rs"
harness = false
required-features = ["datetime_expressions"]
[[bench]]
name = "translate"
path = "benches/translate.rs"
harness = false
required-features = ["unicode_expressions"]
[[bench]]
name = "trim"
path = "benches/trim.rs"
harness = false
required-features = ["string_expressions"]
[[bench]]
name = "trunc"
path = "benches/trunc.rs"
harness = false
required-features = ["math_expressions"]
[[bench]]
name = "upper"
path = "benches/upper.rs"
harness = false
required-features = ["string_expressions"]
[[bench]]
name = "uuid"
path = "benches/uuid.rs"
harness = false
required-features = ["string_expressions"]
[dependencies.arrow]
version = "57.1.0"
features = [
"prettyprint",
"chrono-tz",
]
[dependencies.arrow-buffer]
version = "57.1.0"
default-features = false
[dependencies.base64]
version = "0.22"
optional = true
[dependencies.blake2]
version = "^0.10.2"
optional = true
[dependencies.blake3]
version = "1.8"
optional = true
[dependencies.chrono]
version = "0.4.42"
default-features = false
[dependencies.chrono-tz]
version = "0.10.4"
optional = true
[dependencies.datafusion-common]
version = "52.1.0"
default-features = false
[dependencies.datafusion-doc]
version = "52.1.0"
[dependencies.datafusion-execution]
version = "52.1.0"
default-features = false
[dependencies.datafusion-expr]
version = "52.1.0"
default-features = false
[dependencies.datafusion-expr-common]
version = "52.1.0"
[dependencies.datafusion-macros]
version = "52.1.0"
[dependencies.hex]
version = "0.4.3"
optional = true
[dependencies.itertools]
version = "0.14"
[dependencies.log]
version = "^0.4"
[dependencies.md-5]
version = "^0.10.0"
optional = true
[dependencies.num-traits]
version = "0.2"
[dependencies.rand]
version = "0.9"
[dependencies.regex]
version = "1.12"
optional = true
[dependencies.sha2]
version = "^0.10.9"
optional = true
[dependencies.unicode-segmentation]
version = "^1.7.1"
optional = true
[dependencies.uuid]
version = "1.19"
features = ["v4"]
optional = true
[dev-dependencies.arrow]
version = "57.1.0"
features = [
"prettyprint",
"chrono-tz",
"test_utils",
]
[dev-dependencies.criterion]
version = "0.8"
[dev-dependencies.ctor]
version = "0.6.3"
[dev-dependencies.env_logger]
version = "0.11"
[dev-dependencies.rand]
version = "0.9"
[dev-dependencies.tokio]
version = "1.48"
features = [
"macros",
"rt",
"sync",
"macros",
"rt",
"sync",
]
[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)",
]