[package]
edition = "2021"
name = "datafusion-table-providers"
version = "0.11.2"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Extend the capabilities of DataFusion to support additional data sources via implementations of the `TableProvider` trait."
readme = "README.md"
license = "Apache-2.0"
repository = "https://github.com/datafusion-contrib/datafusion-table-providers"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
adbc = [
"dep:adbc_driver_manager",
"dep:adbc_core",
"dep:r2d2_adbc",
"dep:async-stream",
"dep:arrow-schema",
"dep:r2d2",
]
adbc-federation = [
"adbc",
"federation",
]
clickhouse = [
"dep:clickhouse",
"arrow-ipc/lz4",
"dep:async-stream",
]
clickhouse-federation = [
"clickhouse",
"federation",
]
duckdb = [
"dep:duckdb",
"dep:r2d2",
"dep:uuid",
"dep:dyn-clone",
"dep:async-stream",
"dep:arrow-schema",
"dep:byte-unit",
]
duckdb-federation = [
"duckdb",
"federation",
]
federation = ["dep:datafusion-federation"]
flight = [
"dep:arrow-flight",
"datafusion/serde",
"dep:datafusion-proto",
"dep:prost",
"dep:tonic",
]
mongodb = [
"dep:mongodb",
"dep:async-stream",
"dep:arrow-schema",
"dep:num-traits",
"dep:rust_decimal",
]
mysql = [
"dep:mysql_async",
"dep:async-stream",
]
mysql-federation = [
"mysql",
"federation",
]
odbc = [
"dep:odbc-api",
"dep:arrow-odbc",
"dep:async-stream",
"dep:dyn-clone",
]
odbc-federation = [
"odbc",
"federation",
]
postgres = [
"dep:tokio-postgres",
"dep:rust_decimal",
"dep:uuid",
"dep:postgres-native-tls",
"dep:bb8",
"dep:bb8-postgres",
"dep:native-tls",
"dep:pem",
"dep:async-stream",
"dep:arrow-schema",
"dep:logos",
]
postgres-federation = [
"postgres",
"federation",
]
sqlite = [
"dep:rusqlite",
"dep:tokio-rusqlite",
"dep:arrow-schema",
]
sqlite-bundled = [
"sqlite",
"rusqlite/bundled",
]
sqlite-federation = [
"sqlite",
"federation",
]
[lib]
name = "datafusion_table_providers"
path = "src/lib.rs"
[[example]]
name = "adbc"
path = "examples/adbc_duckdb.rs"
required-features = ["adbc"]
[[example]]
name = "clickhouse"
path = "examples/clickhouse.rs"
required-features = ["clickhouse"]
[[example]]
name = "duckdb"
path = "examples/duckdb.rs"
[[example]]
name = "duckdb_external_table"
path = "examples/duckdb_external_table.rs"
[[example]]
name = "duckdb_function"
path = "examples/duckdb_function.rs"
[[example]]
name = "flight-sql"
path = "examples/flight-sql.rs"
required-features = ["flight"]
[[example]]
name = "mongodb"
path = "examples/mongodb.rs"
required-features = ["mongodb"]
[[example]]
name = "mysql"
path = "examples/mysql.rs"
[[example]]
name = "odbc_sqlite"
path = "examples/odbc_sqlite.rs"
required-features = [
"sqlite",
"odbc",
]
[[example]]
name = "postgres"
path = "examples/postgres.rs"
[[example]]
name = "sqlite"
path = "examples/sqlite.rs"
required-features = ["sqlite"]
[[test]]
name = "integration"
path = "tests/integration.rs"
[dependencies.adbc_core]
version = "0.23"
optional = true
[dependencies.adbc_driver_manager]
version = "0.23"
optional = true
[dependencies.arrow]
version = "58.0"
[dependencies.arrow-array]
version = "58.0"
optional = true
[dependencies.arrow-flight]
version = "58.0"
features = [
"flight-sql-experimental",
"tls-ring",
"flight-sql-experimental",
"tls-ring",
]
optional = true
[dependencies.arrow-ipc]
version = "58.0"
optional = true
[dependencies.arrow-json]
version = "58.0"
[dependencies.arrow-odbc]
version = "25.2"
optional = true
[dependencies.arrow-schema]
version = "58.0"
features = [
"serde",
"serde",
]
optional = true
[dependencies.async-stream]
version = "0.3"
optional = true
[dependencies.async-trait]
version = "0.1"
[dependencies.base64]
version = "0.22"
optional = true
[dependencies.bb8]
version = "0.9"
optional = true
[dependencies.bb8-postgres]
version = "0.9"
optional = true
[dependencies.bigdecimal]
version = "0.4"
[dependencies.byte-unit]
version = "5.2"
optional = true
[dependencies.byteorder]
version = "1.5"
[dependencies.bytes]
version = "1.11"
optional = true
[dependencies.chrono]
version = "0.4.44"
[dependencies.clickhouse]
version = "0.15"
optional = true
[dependencies.dashmap]
version = "6.1"
[dependencies.datafusion]
version = "53.0"
features = ["sql"]
default-features = false
[dependencies.datafusion-expr]
version = "53.0"
optional = true
[dependencies.datafusion-federation]
version = "0.5.3"
features = ["sql"]
optional = true
[dependencies.datafusion-physical-expr]
version = "53.0"
optional = true
[dependencies.datafusion-physical-plan]
version = "53.0"
optional = true
[dependencies.datafusion-proto]
version = "53.0"
optional = true
[dependencies.duckdb]
version = "=1.4.4"
features = [
"bundled",
"r2d2",
"vtab",
"vtab-arrow",
"appender-arrow",
]
optional = true
package = "spiceai_duckdb_fork"
[dependencies.dyn-clone]
version = "1.0"
optional = true
[dependencies.fallible-iterator]
version = "0.3"
[dependencies.fundu]
version = "2.0"
[dependencies.futures]
version = "0.3"
[dependencies.geo-types]
version = "0.7"
[dependencies.hickory-resolver]
version = "0.26"
[dependencies.itertools]
version = "0.14"
[dependencies.libduckdb-sys]
version = "=1.4.4"
optional = true
[dependencies.logos]
version = "0.16"
optional = true
[dependencies.mongodb]
version = "3.6.0"
features = ["openssl-tls"]
optional = true
[dependencies.mysql_async]
version = "0.36"
features = [
"native-tls-tls",
"chrono",
"time",
"bigdecimal",
]
optional = true
[dependencies.native-tls]
version = "0.2"
optional = true
[dependencies.num-bigint]
version = "0.4"
[dependencies.num-traits]
version = "0.2"
optional = true
[dependencies.odbc-api]
version = "28.2"
optional = true
[dependencies.pem]
version = "3.0"
optional = true
[dependencies.postgres-native-tls]
version = "0.5.0"
optional = true
[dependencies.prost]
version = "=0.14.3"
optional = true
[dependencies.r2d2]
version = "0.8"
optional = true
[dependencies.r2d2_adbc]
version = "0.3.0"
optional = true
[dependencies.rand]
version = "0.10"
[dependencies.regex]
version = "1"
[dependencies.rusqlite]
version = "0.37"
optional = true
[dependencies.rust_decimal]
version = "1.38"
features = ["db-postgres"]
optional = true
[dependencies.sea-query]
version = "1.0.0"
features = [
"backend-sqlite",
"backend-postgres",
"postgres-array",
"with-rust_decimal",
"with-bigdecimal",
"with-time",
"with-chrono",
]
[dependencies.secrecy]
version = "0.10"
[dependencies.serde]
version = "1.0"
features = ["derive"]
[dependencies.serde_json]
version = "1.0"
[dependencies.sha2]
version = "0.11"
[dependencies.snafu]
version = "0.9"
[dependencies.time]
version = "0.3"
[dependencies.tokio]
version = "1.52"
features = [
"macros",
"fs",
]
[dependencies.tokio-postgres]
version = "0.7"
features = [
"with-chrono-0_4",
"with-uuid-1",
"with-serde_json-1",
"with-geo-types-0_7",
]
optional = true
[dependencies.tokio-rusqlite]
version = "0.7"
optional = true
[dependencies.tonic]
version = "0.14"
features = [
"tls-native-roots",
"tls-webpki-roots",
]
optional = true
[dependencies.tracing]
version = "0.1"
[dependencies.url]
version = "2.5"
[dependencies.uuid]
version = "1.18"
optional = true
[dev-dependencies.anyhow]
version = "1.0"
[dev-dependencies.bollard]
version = "0.20"
[dev-dependencies.geozero]
version = "0.15.1"
features = ["with-wkb"]
[dev-dependencies.insta]
version = "1.46.0"
features = ["filters"]
[dev-dependencies.prost]
version = "=0.14.3"
[dev-dependencies.rand]
version = "0.10"
[dev-dependencies.reqwest]
version = "0.13"
[dev-dependencies.rstest]
version = "0.26.1"
[dev-dependencies.tempfile]
version = "3.27.0"
[dev-dependencies.test-log]
version = "0.2"
features = ["trace"]
[dev-dependencies.tokio-stream]
version = "0.1"
features = ["net"]
[dev-dependencies.tracing-subscriber]
version = "0.3"
features = ["env-filter"]