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