-
Notifications
You must be signed in to change notification settings - Fork 59
/
Cargo.toml
254 lines (233 loc) · 9.9 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
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
[package]
name = "vrl"
version = "0.19.0"
authors = ["Vector Contributors <[email protected]>"]
edition = "2021"
license = "MPL-2.0"
description = "Vector Remap Language"
homepage = "https://vrl.dev/"
repository = "https://github.com/vectordotdev/vrl"
readme = "README.md"
keywords = ["vector", "datadog", "compiler"]
categories = ["compilers"]
rust-version = "1.79" # msrv
[workspace]
members = [
".",
"lib/cli",
"lib/tests",
"lib/fuzz"
]
[features]
default = ["compiler", "value", "diagnostic", "path", "parser", "stdlib", "datadog", "core"]
# Main features (on by default)
compiler = ["diagnostic", "path", "parser", "value", "dep:paste", "dep:chrono", "dep:serde", "dep:regex", "dep:bytes", "dep:ordered-float", "dep:chrono-tz", "dep:snafu", "dep:thiserror", "dep:dyn-clone", "dep:indoc", "dep:thiserror", "dep:lalrpop-util"]
value = ["path", "dep:bytes", "dep:regex", "dep:ordered-float", "dep:chrono", "dep:serde_json"]
diagnostic = ["dep:codespan-reporting", "dep:termcolor"]
path = ["value", "dep:once_cell", "dep:serde", "dep:snafu", "dep:regex"]
parser = ["path", "diagnostic", "value", "dep:thiserror", "dep:ordered-float", "dep:lalrpop-util"]
parsing = ["value", "compiler", "dep:url", "dep:nom", "dep:regex", "dep:roxmltree", "dep:rust_decimal"]
core = ["value", "dep:snafu", "dep:nom"]
string_path = []
# Datadog related features (on by default)
datadog = ["datadog_filter", "datadog_grok", "datadog_search"]
datadog_filter = ["path", "datadog_search", "dep:regex", "dep:dyn-clone"]
datadog_grok = ["value", "parsing", "dep:nom", "dep:peeking_take_while", "dep:serde_json", "dep:onig", "dep:lalrpop-util", "dep:thiserror", "dep:chrono", "dep:chrono-tz", "dep:percent-encoding", "dep:fancy-regex"]
datadog_search = ["dep:pest", "dep:pest_derive", "dep:itertools", "dep:once_cell", "dep:regex", "dep:serde"]
# Features that aren't used as often (default off)
cli = ["stdlib", "dep:serde_json", "dep:thiserror", "dep:clap", "dep:exitcode", "dep:webbrowser", "dep:rustyline", "dep:prettytable-rs"]
test_framework = ["compiler", "dep:prettydiff", "dep:serde_json", "dep:ansi_term"]
arbitrary = ["dep:quickcheck", "dep:arbitrary"]
lua = ["dep:mlua"]
proptest = ["dep:proptest", "dep:proptest-derive"]
float_roundtrip = ["dep:serde_json", "serde_json/float_roundtrip"]
# Internal testing utilities (used for benches)
test = ["string_path"]
# All stdlib functions
stdlib = [
"compiler",
"core",
"datadog",
"parsing",
"dep:aes",
"dep:base16",
"dep:base62",
"dep:base64",
"dep:cbc",
"dep:cfb-mode",
"dep:chacha20poly1305",
"dep:charset",
"dep:convert_case",
"dep:cidr-utils",
"dep:community-id",
"dep:crypto_secretbox",
"dep:csv",
"dep:ctr",
"dep:data-encoding",
"dep:digest",
"dep:domain",
"dep:dns-lookup",
"dep:flate2",
"dep:grok",
"dep:hex",
"dep:hmac",
"dep:hostname",
"dep:iana-time-zone",
"dep:idna",
"dep:indexmap",
"dep:influxdb-line-protocol",
"dep:md-5",
"dep:nom",
"dep:ofb",
"dep:once_cell",
"dep:percent-encoding",
"dep:prost",
"dep:prost-reflect",
"dep:psl",
"dep:psl-types",
"dep:publicsuffix",
"dep:quoted_printable",
"dep:rand",
"dep:roxmltree",
"dep:rust_decimal",
"dep:seahash",
"dep:sha-1",
"dep:sha-2",
"dep:sha-3",
"dep:snap",
"dep:strip-ansi-escapes",
"dep:syslog_loose",
"dep:tokio",
"dep:uaparser",
"dep:url",
"dep:utf8-width",
"dep:uuid",
"dep:woothee",
"dep:zstd",
]
[dependencies]
cfg-if = "1"
# Optional dependencies
ansi_term = {version = "0.12", optional = true }
arbitrary = { version = "1", optional = true, features = ["derive"] }
base16 = { version = "0.2", optional = true }
base62 = { version = "2.0.2", optional = true }
base64 = { version = "0.22", optional = true }
bytes = { version = "1", default-features = false, optional = true }
charset = { version = "0.1", optional = true }
chrono = { version = "0.4", default-features = false, features = ["clock", "serde", "wasmbind"], optional = true }
chrono-tz = { version = "0.10", default-features = false, optional = true }
cidr-utils = { version = "0.6", optional = true }
csv = { version = "1", optional = true }
clap = { version = "4", features = ["derive"], optional = true }
codespan-reporting = {version = "0.11", optional = true }
convert_case = { version = "0.6.0", optional = true }
data-encoding = { version = "2", optional = true }
digest = { version = "0.10", optional = true }
dyn-clone = { version = "1", default-features = false, optional = true }
exitcode = {version = "1", optional = true }
flate2 = { version = "1", default-features = false, features = ["default"], optional = true }
hex = { version = "0.4", optional = true }
hmac = { version = "0.12", optional = true }
iana-time-zone = { version = "0.1", optional = true }
idna = { version = "0.5", optional = true }
indexmap = { version = "2", default-features = false, features = ["std"], optional = true}
influxdb-line-protocol = { version = "2.0.0", optional = true }
indoc = {version = "2", optional = true }
itertools = { version = "0.13", default-features = false, features=["use_std"], optional = true }
lalrpop-util = { version = "0.22", optional = true }
mlua = { version = "0.9", default-features = false, features = ["lua54", "send", "vendored"], optional = true}
nom = { version = "7", default-features = false, features = ["std"], optional = true }
once_cell = { version = "1", default-features = false, features = ["std"], optional = true }
ordered-float = { version = "4", default-features = false, optional = true }
md-5 = { version = "0.10", optional = true }
paste = { version = "1", default-features = false, optional = true }
peeking_take_while = { version = "1", default-features = false, optional = true }
percent-encoding = { version = "2", optional = true }
pest = { version = "2", default-features = false, optional = true, features = ["std"] }
pest_derive = { version = "2", default-features = false, optional = true, features = ["std"] }
proptest = { version = "1", optional = true }
proptest-derive = { version = "0.4", optional = true }
prettydiff = {version = "0.7", default-features = false, optional = true }
prettytable-rs = { version = "0.10", default-features = false, optional = true }
quickcheck = { version = "1", optional = true }
quoted_printable = {version = "0.5", optional = true }
psl = { version = "2", optional = true }
psl-types = { version = "2", optional = true }
publicsuffix = { version = "2", optional = true }
rand = { version = "0.8", optional = true }
regex = { version = "1", default-features = false, optional = true, features = ["std", "perf", "unicode"] }
roxmltree = { version = "0.20", optional = true }
rustyline = { version = "14", default-features = false, optional = true }
rust_decimal = { version = "1", optional = true }
seahash = { version = "4", optional = true }
serde = { version = "1", features = ["derive"], optional = true }
serde_json = { version = "1", default-features = false, optional = true, features = ["std", "raw_value"] }
fancy-regex = { version = "0.13.0", default-features = false, optional = true }
sha-1 = { version = "0.10", optional = true }
sha-2 = { package = "sha2", version = "0.10", optional = true }
sha-3 = { package = "sha3", version = "0.10", optional = true }
strip-ansi-escapes = { version = "0.2", optional = true }
snap = { version = "1", optional = true }
syslog_loose = { version = "0.21", optional = true }
termcolor = {version = "1", optional = true }
thiserror ={ version = "1", optional = true }
tracing = { version = "0.1", default-features = false }
uaparser = { version = "0.6", default-features = false, optional = true }
utf8-width = { version = "0.1", optional = true }
url = { version = "2", optional = true }
snafu = { version = "0.8", optional = true }
webbrowser = { version = "1.0", default-features = false, optional = true }
woothee = { version = "0.13", optional = true }
community-id = { version = "0.2", optional = true}
zstd = { version = "0.13", default-features = false, features = ["wasm"], optional = true }
# Cryptography
aes = { version = "0.8", optional = true }
chacha20poly1305 = { version = "0.10", optional = true }
crypto_secretbox = { version = "0.1", features = ["salsa20"], optional = true }
# Cryptography - Block Modes
ctr = { version = "0.9", optional = true }
cbc = { version = "0.1", optional = true, features = ["alloc"] }
cfb-mode = { version = "0.8", optional = true }
ofb = { version = "0.6", optional = true }
# Protobuf support.
prost = { version = "0.13", default-features = false, optional = true, features = ["std"]}
prost-reflect = { version = "0.14", default-features = false, optional = true}
# Dependencies used for non-WASM
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
dns-lookup = { version = "2", optional = true }
domain = { version = "0.10.1", optional = true, features = ["resolv-sync", "serde"] }
hostname = { version = "0.4", optional = true }
grok = { version = "2", optional = true }
onig = { version = "6", default-features = false, optional = true }
tokio = { version = "1.38", optional = true, features = ["io-util", "macros", "net", "time", "sync", "rt", "rt-multi-thread" ] }
uuid = { version = "1", features = ["v4", "v7"], optional = true }
# Dependencies used for WASM
[target.'cfg(target_arch = "wasm32")'.dependencies]
uuid = { version = "1", features = ["v4", "v7", "js"], optional = true }
[dev-dependencies]
anyhow = "1"
criterion = "0.5"
chrono-tz = "0.10"
serde_json = "1"
indoc = "2"
tracing-test = { version = "0.2", default-features = false }
toml = { version = "0.8", default-features = false }
mlua = { version = "0.9", default-features = false, features = ["lua54", "send", "vendored"]}
quickcheck = { version = "1"}
regex = { version = "1", default-features = false, features = ["std", "perf", "unicode"] }
paste = { version = "1", default-features = false }
proptest = { version = "1" }
proptest-derive = { version = "0.4" }
[build-dependencies]
lalrpop = { version = "0.20", default-features = false }
[[bench]]
name = "kind"
harness = false
[[bench]]
name = "keyvalue"
harness = false
[[bench]]
name = "stdlib"
harness = false
required-features = ["default", "test"]