forked from delta-io/delta-rs
-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathCargo.toml
More file actions
158 lines (138 loc) · 5.02 KB
/
Cargo.toml
File metadata and controls
158 lines (138 loc) · 5.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
[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-ffi = { version = "52.1.0" }
datafusion-proto = { version = "52.1.0" }
datafusion-physical-expr-adapter = { 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"