Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
bytecodealliance
GitHub Repository: bytecodealliance/wasmtime
Path: blob/main/Cargo.toml
3070 views
1
[package]
2
name = "wasmtime-cli"
3
version.workspace = true
4
authors.workspace = true
5
description = "Command-line interface for Wasmtime"
6
license = "Apache-2.0 WITH LLVM-exception"
7
documentation = "https://bytecodealliance.github.io/wasmtime/cli.html"
8
categories = ["wasm"]
9
keywords = ["webassembly", "wasm"]
10
repository = "https://github.com/bytecodealliance/wasmtime"
11
readme = "README.md"
12
edition.workspace = true
13
default-run = "wasmtime"
14
rust-version.workspace = true
15
16
[package.metadata.binstall]
17
pkg-url = "{repo}/releases/download/v{version}/wasmtime-v{version}-{target-arch}-{target-family}{archive-suffix}"
18
bin-dir = "wasmtime-v{version}-{target-arch}-{target-family}/{bin}{binary-ext}"
19
pkg-fmt = "txz"
20
[package.metadata.binstall.overrides.x86_64-apple-darwin]
21
pkg-url = "{repo}/releases/download/v{version}/wasmtime-v{version}-{target-arch}-macos{archive-suffix}"
22
bin-dir = "wasmtime-v{version}-{target-arch}-macos/{bin}{binary-ext}"
23
[package.metadata.binstall.overrides.aarch64-apple-darwin]
24
pkg-url = "{repo}/releases/download/v{version}/wasmtime-v{version}-{target-arch}-macos{archive-suffix}"
25
bin-dir = "wasmtime-v{version}-{target-arch}-macos/{bin}{binary-ext}"
26
[package.metadata.binstall.overrides.x86_64-pc-windows-msvc]
27
pkg-fmt = "zip"
28
[package.metadata.binstall.overrides.x86_64-pc-windows-gnu]
29
pkg-fmt = "zip"
30
[package.metadata.binstall.overrides.x86_64-unknown-linux-musl]
31
pkg-url = "{repo}/releases/download/v{version}/wasmtime-v{version}-{target-arch}-musl{archive-suffix}"
32
bin-dir = "wasmtime-v{version}-{target-arch}-musl/{bin}{binary-ext}"
33
34
[lints]
35
workspace = true
36
37
[lib]
38
doctest = false
39
40
[[bin]]
41
name = "wasmtime"
42
path = "src/bin/wasmtime.rs"
43
doc = false
44
45
[dependencies]
46
wasmtime = { workspace = true, features = ['std'] }
47
wasmtime-cache = { workspace = true, optional = true }
48
wasmtime-cli-flags = { workspace = true }
49
wasmtime-cranelift = { workspace = true, optional = true }
50
wasmtime-environ = { workspace = true }
51
wasmtime-explorer = { workspace = true, optional = true }
52
wasmtime-wast = { workspace = true, optional = true }
53
wasi-common = { workspace = true, default-features = true, features = ["exit", "tokio"], optional = true }
54
wasmtime-wasi = { workspace = true, default-features = true, optional = true }
55
wasmtime-wasi-nn = { workspace = true, optional = true }
56
wasmtime-wasi-config = { workspace = true, optional = true }
57
wasmtime-wasi-tls = { workspace = true, optional = true }
58
wasmtime-wasi-keyvalue = { workspace = true, optional = true }
59
wasmtime-wasi-threads = { workspace = true, optional = true }
60
wasmtime-wasi-http = { workspace = true, optional = true }
61
wasmtime-unwinder = { workspace = true }
62
wasmtime-wizer = { workspace = true, optional = true, features = ['clap', 'wasmtime'] }
63
clap = { workspace = true }
64
clap_complete = { workspace = true, optional = true }
65
target-lexicon = { workspace = true }
66
listenfd = { version = "1.0.0", optional = true }
67
wat = { workspace = true, optional = true }
68
serde = { workspace = true }
69
serde_derive = { workspace = true }
70
serde_json = { workspace = true }
71
wasmparser = { workspace = true }
72
tracing = { workspace = true, features = ['std'] }
73
log = { workspace = true }
74
tempfile = { workspace = true, optional = true }
75
object = { workspace = true, optional = true }
76
cranelift-codegen = { workspace = true, optional = true, features = ['disas'] }
77
capstone = { workspace = true, optional = true }
78
termcolor = { workspace = true, optional = true }
79
gimli = { workspace = true, optional = true }
80
pulley-interpreter = { workspace = true, optional = true }
81
smallvec = { workspace = true }
82
83
async-trait = { workspace = true }
84
bytes = { workspace = true }
85
cfg-if = { workspace = true }
86
tokio = { workspace = true, optional = true, features = [ "signal", "macros" ] }
87
hyper = { workspace = true, optional = true }
88
http = { workspace = true, optional = true }
89
http-body-util = { workspace = true, optional = true }
90
futures = { workspace = true, optional = true }
91
92
[target.'cfg(unix)'.dependencies]
93
rustix = { workspace = true, features = ["mm", "process"] }
94
95
[dev-dependencies]
96
# depend again on wasmtime to activate its default features for tests
97
wasmtime = { workspace = true, features = ['default', 'anyhow', 'winch', 'pulley', 'all-arch', 'call-hook', 'memory-protection-keys', 'component-model-async'] }
98
env_logger = { workspace = true }
99
log = { workspace = true }
100
filecheck = { workspace = true }
101
tempfile = { workspace = true }
102
tokio = { workspace = true, features = ["rt", "time", "macros", "rt-multi-thread"] }
103
wast = { workspace = true }
104
criterion = { workspace = true }
105
num_cpus = "1.17.0"
106
memchr = "2.4"
107
async-trait = { workspace = true }
108
wat = { workspace = true }
109
rayon = "1.5.0"
110
wasmtime-wast = { workspace = true, features = ['component-model'] }
111
wasmtime-component-util = { workspace = true }
112
wasmtime-test-util = { workspace = true, features = ['wasmtime-wast', 'component'] }
113
bstr = "1.6.0"
114
libc = { workspace = true }
115
serde = { workspace = true }
116
serde_json = { workspace = true }
117
walkdir = { workspace = true }
118
test-programs-artifacts = { workspace = true }
119
bytesize = "2.0.1"
120
wit-component = { workspace = true }
121
cranelift-filetests = { workspace = true }
122
cranelift-codegen = { workspace = true, features = ["disas", "trace-log", "timing"] }
123
cranelift-reader = { workspace = true }
124
toml = { workspace = true }
125
similar = { workspace = true }
126
libtest-mimic = { workspace = true }
127
capstone = { workspace = true }
128
object = { workspace = true, features = ['std'] }
129
wasmtime-test-macros = { path = "crates/test-macros" }
130
pulley-interpreter = { workspace = true, features = ["disas"] }
131
wasm-encoder = { workspace = true }
132
cranelift-native = { workspace = true }
133
futures = { workspace = true }
134
135
# Should only be used for tests that are explicitly testing `anyhow::Error` and
136
# `wasmtime::Error` integration and conversion. Otherwise, always prefer to use
137
# `wasmtime::Error`.
138
anyhow-for-testing = { workspace = true }
139
140
[target.'cfg(windows)'.dev-dependencies]
141
windows-sys = { workspace = true, features = ["Win32_System_Memory"] }
142
143
[target.'cfg(unix)'.dev-dependencies]
144
rustix = { workspace = true, features = ["param"] }
145
146
[profile.release.build-override]
147
opt-level = 0
148
149
[workspace]
150
resolver = '2'
151
members = [
152
"cranelift",
153
"cranelift/assembler-x64/fuzz",
154
"cranelift/isle/fuzz",
155
"cranelift/isle/islec",
156
"cranelift/isle/veri/veri_engine",
157
"cranelift/isle/veri/veri_ir",
158
"cranelift/serde",
159
"crates/bench-api",
160
"crates/c-api/artifact",
161
"crates/environ/fuzz",
162
"crates/misc/component-async-tests",
163
"crates/test-programs",
164
"crates/wasi-preview1-component-adapter",
165
"crates/wasi-preview1-component-adapter/verify",
166
"crates/wasi-tls-nativetls",
167
"crates/wasi-tls-openssl",
168
"crates/debugger",
169
"crates/wizer/fuzz",
170
"crates/wizer/tests/regex-test",
171
"crates/wizer/benches/regex-bench",
172
"crates/wizer/benches/uap-bench",
173
"examples/fib-debug/wasm",
174
"examples/wasm",
175
"examples/tokio/wasm",
176
"examples/component/wasm",
177
"examples/resource-component/wasm",
178
"examples/min-platform",
179
"examples/min-platform/embedding",
180
"examples/wasip2-plugins",
181
"fuzz",
182
"winch/codegen",
183
]
184
exclude = [
185
'docs/rust_wasi_markdown_parser',
186
]
187
188
[workspace.package]
189
version = "43.0.0"
190
authors = ["The Wasmtime Project Developers"]
191
edition = "2024"
192
# Wasmtime's current policy is that this number can be no larger than the
193
# current stable release of Rust minus 2.
194
rust-version = "1.91.0"
195
196
[workspace.lints.rust]
197
# Turn on some lints which are otherwise allow-by-default in rustc.
198
unused_extern_crates = 'warn'
199
trivial_numeric_casts = 'warn'
200
unstable_features = 'warn'
201
unused_import_braces = 'warn'
202
unused-lifetimes = 'warn'
203
unused-macro-rules = 'warn'
204
205
# Don't warn about unknown cfgs for pulley
206
[workspace.lints.rust.unexpected_cfgs]
207
level = "warn"
208
check-cfg = [
209
'cfg(pulley_tail_calls)',
210
'cfg(pulley_assume_llvm_makes_tail_calls)',
211
'cfg(pulley_disable_interp_simd)',
212
]
213
214
[workspace.lints.clippy]
215
# The default set of lints in Clippy is viewed as "too noisy" right now so
216
# they're all turned off by default. Selective lints are then enabled below as
217
# necessary.
218
all = { level = 'allow', priority = -1 }
219
clone_on_copy = 'warn'
220
map_clone = 'warn'
221
uninlined_format_args = 'warn'
222
unnecessary_to_owned = 'warn'
223
manual_strip = 'warn'
224
useless_conversion = 'warn'
225
unnecessary_mut_passed = 'warn'
226
unnecessary_fallible_conversions = 'warn'
227
unnecessary_cast = 'warn'
228
allow_attributes_without_reason = 'warn'
229
from_over_into = 'warn'
230
redundant_field_names = 'warn'
231
multiple_bound_locations = 'warn'
232
extra_unused_type_parameters = 'warn'
233
234
[workspace.dependencies]
235
# Public crates related to Wasmtime.
236
#
237
# These crates are intended to be depended upon publicly to varying degrees. For
238
# example `wasmtime` is very much intended to be used, as well as WASI crates
239
# like `wasmtime-wasi`. Crates like `wasmtime-environ` are useful for ecosystem
240
# tooling but aren't intended to be widely depended on.
241
#
242
# All of these crates are supported though in the sense that
243
wasmtime = { path = "crates/wasmtime", version = "43.0.0", default-features = false }
244
wasmtime-cli-flags = { path = "crates/cli-flags", version = "=43.0.0" }
245
wasmtime-environ = { path = "crates/environ", version = "=43.0.0" }
246
wasmtime-wasi = { path = "crates/wasi", version = "43.0.0", default-features = false }
247
wasmtime-wasi-io = { path = "crates/wasi-io", version = "43.0.0", default-features = false }
248
wasmtime-wasi-http = { path = "crates/wasi-http", version = "43.0.0", default-features = false }
249
wasmtime-wasi-nn = { path = "crates/wasi-nn", version = "43.0.0" }
250
wasmtime-wasi-config = { path = "crates/wasi-config", version = "43.0.0" }
251
wasmtime-wasi-keyvalue = { path = "crates/wasi-keyvalue", version = "43.0.0" }
252
wasmtime-wasi-threads = { path = "crates/wasi-threads", version = "43.0.0" }
253
wasmtime-wasi-tls = { path = "crates/wasi-tls", version = "43.0.0" }
254
wasmtime-wasi-tls-nativetls = { path = "crates/wasi-tls-nativetls", version = "43.0.0" }
255
wasmtime-wasi-tls-openssl = { path = "crates/wasi-tls-openssl", version = "43.0.0" }
256
wasmtime-wast = { path = "crates/wast", version = "=43.0.0" }
257
258
# Internal Wasmtime-specific crates.
259
#
260
# Note that all crates here are actually named `wasmtime-internal-*` as their
261
# package name which is what will show up on crates.io. This is done to signal
262
# that these are internal unsupported crates for external use. These exist as
263
# part of the project organization of other public crates in Wasmtime and are
264
# otherwise not supported in terms of CVEs for example.
265
wasmtime-core = { path = "crates/core", version = "=43.0.0", package = 'wasmtime-internal-core' }
266
wasmtime-wmemcheck = { path = "crates/wmemcheck", version = "=43.0.0", package = 'wasmtime-internal-wmemcheck' }
267
wasmtime-c-api-macros = { path = "crates/c-api-macros", version = "=43.0.0", package = 'wasmtime-internal-c-api-macros' }
268
wasmtime-cache = { path = "crates/cache", version = "=43.0.0", package = 'wasmtime-internal-cache' }
269
wasmtime-cranelift = { path = "crates/cranelift", version = "=43.0.0", package = 'wasmtime-internal-cranelift' }
270
wasmtime-winch = { path = "crates/winch", version = "=43.0.0", package = 'wasmtime-internal-winch' }
271
wasmtime-explorer = { path = "crates/explorer", version = "=43.0.0", package = 'wasmtime-internal-explorer' }
272
wasmtime-fiber = { path = "crates/fiber", version = "=43.0.0", package = 'wasmtime-internal-fiber' }
273
wasmtime-jit-debug = { path = "crates/jit-debug", version = "=43.0.0", package = 'wasmtime-internal-jit-debug' }
274
wasmtime-component-util = { path = "crates/component-util", version = "=43.0.0", package = 'wasmtime-internal-component-util' }
275
wasmtime-component-macro = { path = "crates/component-macro", version = "=43.0.0", package = 'wasmtime-internal-component-macro' }
276
wasmtime-versioned-export-macros = { path = "crates/versioned-export-macros", version = "=43.0.0", package = 'wasmtime-internal-versioned-export-macros' }
277
wasmtime-jit-icache-coherence = { path = "crates/jit-icache-coherence", version = "=43.0.0", package = 'wasmtime-internal-jit-icache-coherence' }
278
wasmtime-wit-bindgen = { path = "crates/wit-bindgen", version = "=43.0.0", package = 'wasmtime-internal-wit-bindgen' }
279
wasmtime-unwinder = { path = "crates/unwinder", version = "=43.0.0", package = 'wasmtime-internal-unwinder' }
280
wasmtime-debugger = { path = "crates/debugger", version = "=43.0.0", package = "wasmtime-internal-debugger" }
281
wasmtime-wizer = { path = "crates/wizer", version = "43.0.0" }
282
283
# Miscellaneous crates without a `wasmtime-*` prefix in their name but still
284
# used in the `wasmtime-*` family of crates depending on various features/etc.
285
wiggle = { path = "crates/wiggle", version = "=43.0.0", default-features = false }
286
wiggle-macro = { path = "crates/wiggle/macro", version = "=43.0.0" }
287
wiggle-generate = { path = "crates/wiggle/generate", version = "=43.0.0" }
288
wasi-common = { path = "crates/wasi-common", version = "=43.0.0", default-features = false }
289
pulley-interpreter = { path = 'pulley', version = "=43.0.0" }
290
pulley-macros = { path = 'pulley/macros', version = "=43.0.0" }
291
292
# Cranelift crates in this workspace
293
cranelift-assembler-x64 = { path = "cranelift/assembler-x64", version = "0.130.0" }
294
cranelift-codegen = { path = "cranelift/codegen", version = "0.130.0", default-features = false, features = ["std", "unwind"] }
295
cranelift-frontend = { path = "cranelift/frontend", version = "0.130.0" }
296
cranelift-entity = { path = "cranelift/entity", version = "0.130.0" }
297
cranelift-native = { path = "cranelift/native", version = "0.130.0" }
298
cranelift-module = { path = "cranelift/module", version = "0.130.0" }
299
cranelift-interpreter = { path = "cranelift/interpreter", version = "0.130.0" }
300
cranelift-reader = { path = "cranelift/reader", version = "0.130.0" }
301
cranelift-filetests = { path = "cranelift/filetests" }
302
cranelift-object = { path = "cranelift/object", version = "0.130.0" }
303
cranelift-jit = { path = "cranelift/jit", version = "0.130.0" }
304
cranelift-fuzzgen = { path = "cranelift/fuzzgen" }
305
cranelift-bforest = { path = "cranelift/bforest", version = "0.130.0" }
306
cranelift-bitset = { path = "cranelift/bitset", version = "0.130.0" }
307
cranelift-control = { path = "cranelift/control", version = "0.130.0", default-features = false }
308
cranelift-srcgen = { path = "cranelift/srcgen", version = "0.130.0" }
309
cranelift = { path = "cranelift/umbrella", version = "0.130.0" }
310
311
# Winch crates in this workspace.
312
winch-codegen = { path = "winch/codegen", version = "=43.0.0" }
313
314
# Internal crates not published to crates.io used in testing, builds, etc
315
wasi-preview1-component-adapter = { path = "crates/wasi-preview1-component-adapter" }
316
wasmtime-fuzzing = { path = "crates/fuzzing" }
317
test-programs-artifacts = { path = 'crates/test-programs/artifacts' }
318
wasmtime-test-util = { path = "crates/test-util" }
319
byte-array-literals = { path = "crates/wasi-preview1-component-adapter/byte-array-literals" }
320
pulley-interpreter-fuzz = { path = 'pulley/fuzz' }
321
component-async-tests = { path = "crates/misc/component-async-tests" }
322
323
# Bytecode Alliance maintained dependencies:
324
# ---------------------------
325
regalloc2 = "0.13.4"
326
wasip1 = { version = "1.0.0", default-features = false }
327
328
# cap-std family:
329
target-lexicon = "0.13.0"
330
cap-std = "3.4.5"
331
cap-rand = { version = "3.4.5", features = ["small_rng"] }
332
cap-fs-ext = "3.4.5"
333
cap-net-ext = "3.4.5"
334
cap-time-ext = "3.4.5"
335
cap-tempfile = "3.4.5"
336
fs-set-times = "0.20.3"
337
system-interface = { version = "0.27.3", features = ["cap_std_impls"] }
338
io-lifetimes = { version = "2.0.3", default-features = false }
339
io-extras = "0.18.4"
340
rustix = "1.0.8"
341
# wit-bindgen:
342
wit-bindgen = { version = "0.51.0", default-features = false }
343
wit-bindgen-rust-macro = { version = "0.51.0", default-features = false }
344
345
# wasm-tools family:
346
wasmparser = { version = "0.244.0", default-features = false, features = ['simd'] }
347
wat = "1.244.0"
348
wast = "244.0.0"
349
wasmprinter = "0.244.0"
350
wasm-encoder = "0.244.0"
351
wasm-smith = "0.244.0"
352
wasm-mutate = "0.244.0"
353
wit-parser = "0.244.0"
354
wit-component = "0.244.0"
355
wasm-wave = "0.244.0"
356
wasm-compose = "0.244.0"
357
json-from-wast = "0.244.0"
358
359
# Non-Bytecode Alliance maintained dependencies:
360
# --------------------------
361
arbitrary = "1.4.2"
362
backtrace = "0.3.75"
363
mutatis = "0.3.2"
364
cc = "1.2.41"
365
object = { version = "0.37.3", default-features = false, features = ['read_core', 'elf'] }
366
gimli = { version = "0.33.0", default-features = false, features = ['read'] }
367
addr2line = { version = "0.26.0", default-features = false }
368
anyhow = { version = "1.0.100", default-features = false }
369
anyhow-for-testing = { package = "anyhow", version = "1.0.100", default-features = false }
370
windows-sys = "0.61.2"
371
env_logger = "0.11.5"
372
log = { version = "0.4.28", default-features = false }
373
clap = { version = "4.5.48", default-features = false, features = ["std", "derive"] }
374
clap_complete = "4.5.58"
375
hashbrown = { version = "0.15", default-features = false }
376
capstone = "0.13.0"
377
smallvec = { version = "1.15.1", features = ["union"] }
378
tracing = { version = "0.1.41", default-features = false }
379
bitflags = "2.9.4"
380
thiserror = "2.0.17"
381
async-trait = "0.1.89"
382
heck = "0.5"
383
similar = "2.7.0"
384
toml = "0.9.8"
385
mach2 = "0.4.2"
386
memfd = "0.6.5"
387
psm = "0.1.11"
388
proptest = "1.0.0"
389
rand = { version = "0.9.2", features = ["small_rng"] }
390
# serde and serde_derive must have the same version
391
serde = { version = "1.0.228", default-features = false, features = ['alloc'] }
392
serde_derive = "1.0.228"
393
serde_json = "1.0.80"
394
glob = "0.3.3"
395
libfuzzer-sys = "0.4.10"
396
walkdir = "2.5.0"
397
cfg-if = "1.0"
398
tempfile = "3.23.0"
399
filecheck = "0.5.0"
400
libc = { version = "0.2.177", default-features = true }
401
file-per-thread-logger = "0.2.0"
402
tokio = { version = "1.48.0", features = [ "rt", "time" ] }
403
hyper = "1.7.0"
404
http = "1.3.1"
405
http-body = "1.0.1"
406
http-body-util = "0.1.3"
407
bytes = { version = "1.10.1", default-features = false }
408
futures = { version = "0.3.31", default-features = false }
409
indexmap = { version = "2.11.4", default-features = false }
410
syn = "2.0.106"
411
quote = "1.0.41"
412
proc-macro2 = "1.0.101"
413
test-log = { version = "0.2.18", default-features = false, features = ["trace"] }
414
tracing-subscriber = { version = "0.3.20", default-features = false, features = ['fmt', 'env-filter', 'ansi', 'tracing-log'] }
415
url = "2.5.7"
416
postcard = { version = "1.1.3", default-features = false, features = ['alloc'] }
417
criterion = { version = "0.7.0", default-features = false, features = ["html_reports", "rayon"] }
418
rustc-hash = { version = "2.1.1", default-features = false }
419
libtest-mimic = "0.8.1"
420
semver = { version = "1.0.27", default-features = false }
421
ittapi = "0.4.0"
422
libm = "0.2.16"
423
tokio-rustls = "0.25.0"
424
rustls = "0.22.0"
425
tokio-native-tls = "0.3.1"
426
native-tls = "0.2.11"
427
tokio-openssl = "0.6.5"
428
openssl = "0.10.73"
429
openssl-sys = "0.9.109"
430
webpki-roots = "0.26.0"
431
itertools = "0.14.0"
432
base64 = "0.22.1"
433
termcolor = "1.4.1"
434
flate2 = "1.1.4"
435
tokio-util = "0.7.16"
436
arbtest = "0.3.2"
437
rayon = "1.5.3"
438
regex = "1.9.1"
439
pin-project-lite = "0.2.14"
440
441
# =============================================================================
442
#
443
# Features for the Wasmtime CLI executable
444
#
445
#
446
# Note that many of these features are inherited from Wasmtime itself or
447
# otherwise configure the `wasmtime` crate's execution. Features are provided as
448
# compile-time switches to disable functionality primarily if one is interested
449
# in configuring binary size and or exploring the binary size implications of
450
# various features. Most features are enabled by default but most embeddings
451
# likely won't need all features.
452
#
453
# When adding or removing a feature, make sure to keep the C API in sync by
454
# modifying locations marked WASMTIME_FEATURE_LIST
455
[features]
456
default = [
457
# All subcommands are included by default.
458
"run",
459
"compile",
460
"explore",
461
"serve",
462
"wast",
463
"config",
464
"completion",
465
"objdump",
466
"wizer",
467
468
# On-by-default WASI features
469
"wasi-nn",
470
"wasi-threads",
471
"wasi-http",
472
"wasi-config",
473
"wasi-keyvalue",
474
"wasi-tls",
475
476
# Most features of Wasmtime are enabled by default.
477
"backtrace",
478
"wat",
479
"parallel-compilation",
480
"pooling-allocator",
481
"cache",
482
"logging",
483
"demangle",
484
"cranelift",
485
"profiling",
486
"coredump",
487
"addr2line",
488
"debug-builtins",
489
"component-model",
490
"component-model-async",
491
"threads",
492
"gc",
493
"gc-drc",
494
"gc-null",
495
"stack-switching",
496
"winch",
497
"pulley",
498
"debug",
499
500
# Enable some nice features of clap by default, but they come at a binary size
501
# cost, so allow disabling this through disabling of our own `default`
502
# feature.
503
"clap/default",
504
"clap/wrap_help",
505
]
506
507
# ========================================
508
# Off-by-default features
509
#
510
# These features are off-by-default but may optionally be enabled.
511
all-arch = ["wasmtime/all-arch"]
512
winch = ["wasmtime/winch"]
513
wmemcheck = ["wasmtime/wmemcheck"]
514
trace-log = ["wasmtime/trace-log"]
515
memory-protection-keys = ["wasmtime-cli-flags/memory-protection-keys"]
516
profile-pulley = ["wasmtime/profile-pulley"]
517
component-model-async = [
518
"wasmtime-cli-flags/component-model-async",
519
"component-model",
520
"wasmtime-wasi?/p3",
521
"wasmtime-wasi-http?/p3",
522
"dep:futures",
523
]
524
rr = ["wasmtime/rr", "component-model", "wasmtime-cli-flags/rr", "run"]
525
526
# This feature, when enabled, will statically compile out all logging statements
527
# throughout Wasmtime and its dependencies.
528
disable-logging = ["log/max_level_off", "tracing/max_level_off"]
529
530
# ========================================
531
# On-by-default features
532
#
533
# These features are all included in the `default` set above and this is
534
# the internal mapping for what they enable in Wasmtime itself.
535
wasi-nn = ["dep:wasmtime-wasi-nn"]
536
wasi-tls = ["dep:wasmtime-wasi-tls"]
537
wasi-threads = ["dep:wasmtime-wasi-threads", "threads"]
538
wasi-http = ["component-model", "dep:wasmtime-wasi-http", "dep:tokio", "dep:hyper", "wasmtime-wasi-http/default-send-request"]
539
wasi-config = ["dep:wasmtime-wasi-config"]
540
wasi-keyvalue = ["dep:wasmtime-wasi-keyvalue"]
541
pooling-allocator = ["wasmtime/pooling-allocator", "wasmtime-cli-flags/pooling-allocator"]
542
backtrace = ["wasmtime/backtrace"]
543
component-model = [
544
"wasmtime/component-model",
545
"wasmtime-wast?/component-model",
546
"wasmtime-cli-flags/component-model",
547
"wasmtime-wizer?/component-model",
548
]
549
wat = ["dep:wat", "wasmtime/wat"]
550
cache = ["dep:wasmtime-cache", "wasmtime-cli-flags/cache"]
551
parallel-compilation = ["wasmtime-cli-flags/parallel-compilation"]
552
logging = ["wasmtime-cli-flags/logging"]
553
demangle = ["wasmtime/demangle"]
554
cranelift = ["wasmtime-cli-flags/cranelift", "dep:wasmtime-cranelift"]
555
profiling = ["wasmtime/profiling", "wasmtime/call-hook"]
556
coredump = ["wasmtime-cli-flags/coredump"]
557
addr2line = ["wasmtime/addr2line"]
558
debug-builtins = ["wasmtime/debug-builtins"]
559
threads = ["wasmtime-cli-flags/threads"]
560
gc = ["wasmtime-cli-flags/gc", "wasmtime/gc"]
561
gc-drc = ["gc", "wasmtime/gc-drc", "wasmtime-cli-flags/gc-drc"]
562
gc-null = ["gc", "wasmtime/gc-null", "wasmtime-cli-flags/gc-null"]
563
pulley = ["wasmtime-cli-flags/pulley"]
564
stack-switching = ["wasmtime/stack-switching", "wasmtime-cli-flags/stack-switching"]
565
debug = ["wasmtime-cli-flags/debug", "wasmtime/debug"]
566
567
# CLI subcommands for the `wasmtime` executable. See `wasmtime $cmd --help`
568
# for more information on each subcommand.
569
serve = [
570
"wasi-http",
571
"wasmtime-wasi-http/component-model-async",
572
"component-model",
573
"dep:http-body-util",
574
"dep:http",
575
"wasmtime-cli-flags/async",
576
]
577
explore = ["dep:wasmtime-explorer", "dep:tempfile"]
578
wast = ["dep:wasmtime-wast"]
579
config = ["cache"]
580
compile = ["cranelift"]
581
run = [
582
"dep:wasmtime-wasi",
583
"wasmtime/runtime",
584
"wasmtime/wave",
585
"dep:listenfd",
586
"dep:wasi-common",
587
"dep:tokio",
588
"wasmtime-cli-flags/async",
589
]
590
completion = ["dep:clap_complete"]
591
objdump = [
592
'dep:object',
593
'dep:cranelift-codegen',
594
'dep:capstone',
595
'dep:termcolor',
596
'dep:gimli',
597
'pulley-interpreter/disas',
598
]
599
wizer = [
600
"wasmtime-wizer",
601
"dep:wasmtime-wasi",
602
"dep:wasi-common",
603
"dep:tokio",
604
"wasmtime/wave",
605
]
606
607
[[test]]
608
name = "disas"
609
harness = false
610
611
[[test]]
612
name = "wast"
613
harness = false
614
615
[[test]]
616
name = "wasi"
617
harness = false
618
619
[[example]]
620
name = "tokio"
621
required-features = ["wasi-common/tokio"]
622
623
[[bench]]
624
name = "compile"
625
harness = false
626
627
[[bench]]
628
name = "instantiation"
629
harness = false
630
631
[[bench]]
632
name = "thread_eager_init"
633
harness = false
634
635
[[bench]]
636
name = "trap"
637
harness = false
638
639
[[bench]]
640
name = "call"
641
harness = false
642
643
[[bench]]
644
name = "wasi"
645
harness = false
646
647
[profile.release.package.wasi-preview1-component-adapter]
648
opt-level = 's'
649
strip = 'debuginfo'
650
651
[profile.dev.package.wasi-preview1-component-adapter]
652
# Make dev look like a release build since this adapter module won't work with
653
# a debug build that uses data segments and such.
654
incremental = false
655
opt-level = 's'
656
# Omit assertions, which include failure messages which require string
657
# initializers.
658
debug-assertions = false
659
# Omit integer overflow checks, which include failure messages which require
660
# string initializers.
661
overflow-checks = false
662
663
# Same as `wasi-preview1-component-adapter` above
664
[profile.dev.package.wit-bindgen]
665
incremental = false
666
debug-assertions = false
667
overflow-checks = false
668
opt-level = 's'
669
670
[profile.profiling]
671
inherits = "bench"
672
debug = "line-tables-only"
673
674
[profile.fastest-runtime]
675
inherits = "release"
676
codegen-units = 1
677
lto = true
678
679