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