[workspace]
members = ["xtask"]
exclude = ["xtask/arrow-odbc-runner", "xtask/odbc-bcp-runner"]
resolver = "3"

[workspace.lints.rust]
missing_docs = "deny"

[workspace.lints.clippy]
unwrap_used = "deny"
expect_used = "deny"
panic = "deny"

[package]
name = "arrow-tiberius"
version = "0.1.4"
edition = "2024"
rust-version = "1.88"
license = "Apache-2.0"
repository = "https://github.com/mag1cfrog/arrow-tiberius"
documentation = "https://docs.rs/arrow-tiberius"
description = "Apache Arrow and SQL Server bridge through Tiberius"
readme = "README.md"
keywords = ["arrow", "sql-server", "tiberius", "tds"]
categories = ["database"]
# Keep package contents focused on source, examples, tests, and user-facing docs
# linked from README or crate rustdoc. Cargo.lock is included intentionally as
# the validated release dependency graph for the packaged examples and tests; it
# does not constrain library consumers.
include = [
    "Cargo.lock",
    "Cargo.toml",
    "LICENSE",
    "README.md",
    "src/**",
    "tests/**",
    "examples/**",
    "docs/README.md",
    "docs/benchmarks.md",
    "docs/integration-tests.md",
    "docs/observability.md",
    "docs/type-mapping.md",
]

[lints]
workspace = true

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

[features]
bench-profile = ["tiberius/bulk-load-profile"]
integration-tests = []

[package.metadata.docs.rs]
all-features = true
targets = ["x86_64-unknown-linux-gnu"]
rustdoc-args = ["--cfg", "docsrs"]

[dependencies]
arrow-array = { version = "58.3.0", features = ["chrono-tz"] }
arrow-buffer = "58.3.0"
arrow-schema = "58.3.0"
chrono = { version = "0.4.40", default-features = false }
futures-util = { version = "0.3", default-features = false, features = ["io"] }
snafu = "0.9.1"
tiberius = { package = "tiberius-raw-bulk", version = "=0.12.3-raw-bulk.14", default-features = false, features = [
    "tds73",
    "winauth",
    "native-tls",
] }
tokio = { version = "1", default-features = false, features = ["net"] }
tokio-util = { version = "0.7", default-features = false, features = ["compat"] }
tracing = "0.1"

[dev-dependencies]
arrow-data = "58.3.0"
tokio = { version = "1", features = ["macros", "net", "rt"] }
tracing-subscriber = { version = "0.3", default-features = false, features = [
    "registry",
    "std",
] }
