-
Notifications
You must be signed in to change notification settings - Fork 75
/
Copy pathCargo.toml
162 lines (139 loc) · 4.53 KB
/
Cargo.toml
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
159
160
161
162
[package]
name = "delta_kernel"
description = "Core crate providing a Delta/Deltalake implementation focused on interoperability with a wide range of query engines."
documentation = "https://docs.rs/delta_kernel"
edition.workspace = true
homepage.workspace = true
license.workspace = true
repository.workspace = true
readme.workspace = true
version.workspace = true
# exclude golden tests + golden test data since they push us over 10MB crate size limit
exclude = ["tests/golden_tables.rs", "tests/golden_data/"]
rust-version.workspace = true
[package.metadata.docs.rs]
all-features = true
[package.metadata.release]
pre-release-replacements = [
{ file = "../README.md", search = "delta_kernel = \"[a-z0-9\\.-]+\"", replace = "delta_kernel = \"{{version}}\"" },
{ file = "../README.md", search = "version = \"[a-z0-9\\.-]+\"", replace = "version = \"{{version}}\"" },
]
pre-release-hook = [
"git",
"cliff",
"--repository",
"../",
"--config",
"../cliff.toml",
"--unreleased",
"--prepend",
"../CHANGELOG.md",
"--include-path",
"*",
"--tag",
"{{version}}",
]
[dependencies]
bytes = "1.7"
chrono = "=0.4.39"
fix-hidden-lifetime-bug = "0.2"
indexmap = "2.5.0"
itertools = "0.13"
roaring = "0.10.6"
serde = { version = "1", features = ["derive", "rc"] }
serde_json = "1"
thiserror = "1"
# only for structured logging
tracing = { version = "0.1", features = ["log"] }
url = "2"
uuid = { version = "1.10.0", features = ["v4", "fast-rng"] }
z85 = "3.0.5"
# bring in our derive macros
delta_kernel_derive = { path = "../derive-macros", version = "0.8.0" }
# used for developer-visibility
visibility = "0.1.1"
# Used in the sync engine
tempfile = { version = "3", optional = true }
# Arrow supported versions
## 53
# Used in default engine
arrow_53 = { package = "arrow", version = "53", features = ["chrono-tz", "ffi", "json", "prettyprint"], optional = true }
# Used in default and sync engine
parquet_53 = { package = "parquet", version = "53", features = ["async", "object_store"] , optional = true }
######
## 54
arrow_54 = { package = "arrow", version = "54", features = ["chrono-tz", "ffi", "json", "prettyprint"], optional = true }
parquet_54 = { package = "parquet", version = "54", features = ["async", "object_store"] , optional = true }
######
futures = { version = "0.3", optional = true }
object_store = { workspace = true, optional = true }
hdfs-native-object-store = { workspace = true, optional = true }
# Used for fetching direct urls (like pre-signed urls)
reqwest = { version = "0.12.8", default-features = false, optional = true }
strum = { version = "0.26", features = ["derive"] }
# optionally used with default engine (though not required)
tokio = { version = "1.40", optional = true, features = ["rt-multi-thread"] }
# Used in integration tests
hdfs-native = { workspace = true, optional = true }
walkdir = { workspace = true, optional = true }
[features]
# The default version to be expected
arrow = ["arrow_53"]
arrow_53 = ["dep:arrow_53", "dep:parquet_53"]
arrow_54 = ["dep:arrow_54", "dep:parquet_54"]
need_arrow = []
arrow-conversion = ["need_arrow"]
arrow-expression = ["need_arrow"]
cloud = [
"object_store/aws",
"object_store/azure",
"object_store/gcp",
"object_store/http",
"hdfs-native-object-store",
]
default = []
# this is an 'internal' feature flag which has all the shared bits from default-engine and
# default-engine-rustls
default-engine-base = [
"arrow-conversion",
"arrow-expression",
"futures",
"need_arrow",
"object_store",
"tokio",
]
# the default-engine use the reqwest crate with default features which uses native-tls. if you want
# to instead use rustls, use 'default-engine-rustls' which has no native-tls dependency
default-engine = ["default-engine-base", "reqwest/default"]
default-engine-rustls = [
"default-engine-base",
"reqwest/rustls-tls-native-roots",
"reqwest/http2",
]
developer-visibility = []
sync-engine = [
"need_arrow",
"tempfile",
]
integration-test = [
"hdfs-native-object-store/integration-test",
"hdfs-native",
"walkdir",
]
[dependencies.home]
version = "=0.5.9"
[build-dependencies]
rustc_version = "0.4.1"
[dev-dependencies]
delta_kernel = { path = ".", features = ["arrow", "default-engine", "sync-engine"] }
test_utils = { path = "../test-utils" }
async-trait = "0.1" # only used for our custom SlowGetStore ObjectStore implementation
paste = "1.0"
test-log = { version = "0.2", default-features = false, features = ["trace"] }
tempfile = "3"
tar = "0.4"
zstd = "0.13"
tracing-subscriber = { version = "0.3", default-features = false, features = [
"env-filter",
"fmt",
] }