mirror of
https://github.com/langchain-ai/delta-rs.git
synced 2026-07-01 20:34:35 -04:00
ef405d80ef
# Description Follow up to the DF 52 upgrade. Replaces custom scan batch casting logic with DataFusion's `BatchAdapterFactory` via `datafusion-physical-expr-adapter`. Adds hardening tests for schema evolution and DV scan behavior Keeps DF default behavior with no custom compatibility mode # Related Issue(s) <!--- For example: - closes #106 ---> # Documentation <!--- Share links to useful documentation ---> --------- Signed-off-by: Ethan Urbanski <ethan@urbanskitech.com>
159 lines
5.0 KiB
TOML
159 lines
5.0 KiB
TOML
[workspace]
|
|
members = ["crates/*", "python"]
|
|
exclude = []
|
|
resolver = "3"
|
|
|
|
[workspace.package]
|
|
authors = ["Qingping Hou <dave2008713@gmail.com>", "R Tyler Croy <rtyler@brokenco.de>"]
|
|
rust-version = "1.88"
|
|
keywords = ["deltalake", "delta", "datalake"]
|
|
readme = "README.md"
|
|
edition = "2024"
|
|
description = "Native Delta Lake implementation in Rust"
|
|
homepage = "https://github.com/delta-io/delta.rs"
|
|
license = "Apache-2.0"
|
|
documentation = "https://docs.rs/deltalake"
|
|
repository = "https://github.com/delta-io/delta.rs"
|
|
|
|
[workspace.dependencies]
|
|
delta_kernel = { version = "0.19.0", features = [
|
|
"arrow-57",
|
|
"default-engine-rustls",
|
|
"internal-api",
|
|
] }
|
|
|
|
|
|
# arrow
|
|
arrow = { version = "57" }
|
|
arrow-arith = { version = "57" }
|
|
arrow-array = { version = "57", features = ["chrono-tz"] }
|
|
arrow-buffer = { version = "57" }
|
|
arrow-cast = { version = "57" }
|
|
arrow-ipc = { version = "57" }
|
|
arrow-json = { version = "57" }
|
|
arrow-ord = { version = "57" }
|
|
arrow-row = { version = "57" }
|
|
arrow-schema = { version = "57" }
|
|
arrow-select = { version = "57" }
|
|
object_store = { version = "0.12.1" }
|
|
parquet = { version = "57" }
|
|
|
|
# datafusion 52.1
|
|
datafusion = { version = "52.1.0" }
|
|
datafusion-datasource = { version = "52.1.0" }
|
|
datafusion-physical-expr-adapter = { version = "52.1.0" }
|
|
datafusion-ffi = { version = "52.1.0" }
|
|
datafusion-proto = { version = "52.1.0" }
|
|
|
|
# serde
|
|
serde = { version = "1.0.194", features = ["derive"] }
|
|
serde_json = "1"
|
|
strum = { version = "0.27" }
|
|
|
|
# "stdlib"
|
|
bytes = { version = "1" }
|
|
chrono = { version = "0.4.40", default-features = false, features = ["clock"] }
|
|
tracing = { version = "0.1", features = ["log"] }
|
|
regex = { version = "1" }
|
|
thiserror = { version = "2" }
|
|
url = { version = "2" }
|
|
percent-encoding-rfc3986 = { version = "0.1.3" }
|
|
tempfile = { version = "3" }
|
|
uuid = { version = "1" }
|
|
|
|
# runtime / async
|
|
async-trait = { version = "0.1" }
|
|
futures = { version = "0.3" }
|
|
tokio = { version = "1" }
|
|
typed-builder = { version = "0.23.0" }
|
|
|
|
# opentelemetry
|
|
tracing-opentelemetry = { version = "0.32" }
|
|
opentelemetry = { version = "0.31" }
|
|
opentelemetry-otlp = { version = "0.31", features = ["http-proto"] }
|
|
opentelemetry_sdk = { version = "0.31", features = ["rt-tokio"] }
|
|
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
|
|
num_cpus = { version = "1" }
|
|
|
|
[workspace.metadata.typos]
|
|
files.extend-exclude = ["CHANGELOG.md", "crates/benchmarks/queries/tpcds/*.sql"]
|
|
default.extend-ignore-re = [
|
|
# Custom ignore regex patterns: https://github.com/crate-ci/typos/blob/master/docs/reference.md#example-configurations
|
|
"(?s)//\\s*spellchecker:ignore-next-line[^\\n]*\\n[^\\n]*",
|
|
# Line block with # spellchecker:<on|off>
|
|
"(?s)(#|//|<\\!--)\\s*spellchecker:off.*?\\n\\s*(#|//|<\\!--)\\s*spellchecker:on",
|
|
"(?Rm)^.*(#|//)\\s*spellchecker:disable-line$",
|
|
# workaround for: https://github.com/crate-ci/typos/issues/850
|
|
"[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}",
|
|
]
|
|
|
|
[workspace.metadata.typos.default.extend-words]
|
|
arro = "arro"
|
|
Arro = "Arro"
|
|
arro3 = "arro3"
|
|
Arro3 = "Arro3"
|
|
AKS = "AKS"
|
|
# to avoid using 'type' as a field name.
|
|
tpe = "tpe"
|
|
|
|
# ============================================================================
|
|
# Profile Configuration
|
|
# ============================================================================
|
|
# Profiles for different use cases:
|
|
# - dev: Fast local development with good debug experience (Cargo defaults)
|
|
# - test: test builds with minimal debug info to save disk/RAM (custom)
|
|
# - release: Production Rust crates - maximum performance (Cargo defaults)
|
|
# - bench: For benchmarking with flamegraphs (cargo bench)
|
|
# - profiling: For performance profiling with release opts + debug info
|
|
# - ci: CI/CD optimized - fast builds, release-like performance
|
|
# - python-release: Python wheel builds - portable, reproducible (PyPI releases)
|
|
# ============================================================================
|
|
|
|
# Test profile - reduced debug info to save disk/RAM
|
|
# Usage: cargo test (automatic)
|
|
# <https://github.com/delta-io/delta-rs/issues/1550>
|
|
[profile.test]
|
|
debug = "line-tables-only"
|
|
|
|
# Benchmark profile with debug symbols for flamegraphs
|
|
# Usage: cargo bench (automatic)
|
|
[profile.bench]
|
|
debug = true
|
|
|
|
# Profiling profile with release optimizations + debug info
|
|
# Usage: cargo build --profile=profiling
|
|
[profile.profiling]
|
|
inherits = "release"
|
|
debug = true
|
|
|
|
# CI profile - optimized for Continuous Integration
|
|
# Usage: cargo build --profile=ci
|
|
[profile.ci]
|
|
inherits = "dev"
|
|
debug = false
|
|
incremental = false
|
|
|
|
[profile.ci.package."*"]
|
|
opt-level = 3
|
|
debug = false
|
|
debug-assertions = false
|
|
strip = "debuginfo"
|
|
incremental = false
|
|
|
|
# Python wheel release profile - for PyPI distribution
|
|
# Usage: maturin build --profile python-release (via .github/workflows/python_release.yml)
|
|
[profile.python-release]
|
|
inherits = "release"
|
|
opt-level = 3
|
|
codegen-units = 1
|
|
lto = "fat"
|
|
|
|
|
|
# Python wheel release profile ARM - for PyPI distribution
|
|
# Usage: maturin build --profile python-release-arm (via .github/workflows/python_release.yml)
|
|
[profile.python-release-arm]
|
|
inherits = "release"
|
|
opt-level = 3
|
|
codegen-units = 1
|
|
lto = "thin"
|