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 } 61wasmtime-unwinder = { workspace = true } 62wasmtime-wizer = { workspace = true, optional = true, features = ['clap', 'wasmtime'] } 63clap = { workspace = true } 64clap_complete = { workspace = true, optional = true } 65target-lexicon = { workspace = true } 66listenfd = { version = "1.0.0", optional = true } 67wat = { workspace = true, optional = true } 68serde = { workspace = true } 69serde_derive = { workspace = true } 70serde_json = { workspace = true } 71wasmparser = { workspace = true } 72tracing = { workspace = true, features = ['std'] } 73log = { workspace = true } 74tempfile = { workspace = true, optional = true } 75object = { workspace = true, optional = true } 76cranelift-codegen = { workspace = true, optional = true, features = ['disas'] } 77capstone = { workspace = true, optional = true } 78termcolor = { workspace = true, optional = true } 79gimli = { workspace = true, optional = true } 80pulley-interpreter = { workspace = true, optional = true } 81smallvec = { workspace = true } 82 83async-trait = { workspace = true } 84bytes = { workspace = true } 85cfg-if = { workspace = true } 86tokio = { workspace = true, optional = true, features = [ "signal", "macros" ] } 87hyper = { workspace = true, optional = true } 88http = { workspace = true, optional = true } 89http-body-util = { workspace = true, optional = true } 90futures = { workspace = true, optional = true } 91 92[target.'cfg(unix)'.dependencies] 93rustix = { workspace = true, features = ["mm", "process"] } 94 95[dev-dependencies] 96# depend again on wasmtime to activate its default features for tests 97wasmtime = { workspace = true, features = ['default', 'anyhow', 'winch', 'pulley', 'all-arch', 'call-hook', 'memory-protection-keys', 'component-model-async'] } 98env_logger = { workspace = true } 99log = { workspace = true } 100filecheck = { workspace = true } 101tempfile = { workspace = true } 102tokio = { workspace = true, features = ["rt", "time", "macros", "rt-multi-thread"] } 103wast = { workspace = true } 104criterion = { workspace = true } 105num_cpus = "1.17.0" 106memchr = "2.4" 107async-trait = { workspace = true } 108wat = { workspace = true } 109rayon = "1.5.0" 110wasmtime-wast = { workspace = true, features = ['component-model'] } 111wasmtime-component-util = { workspace = true } 112wasmtime-test-util = { workspace = true, features = ['wasmtime-wast', 'component'] } 113bstr = "1.6.0" 114libc = { workspace = true } 115serde = { workspace = true } 116serde_json = { workspace = true } 117walkdir = { workspace = true } 118test-programs-artifacts = { workspace = true } 119bytesize = "2.0.1" 120wit-component = { workspace = true } 121cranelift-filetests = { workspace = true } 122cranelift-codegen = { workspace = true, features = ["disas", "trace-log", "timing"] } 123cranelift-reader = { workspace = true } 124toml = { workspace = true } 125similar = { workspace = true } 126libtest-mimic = { workspace = true } 127capstone = { workspace = true } 128object = { workspace = true, features = ['std'] } 129wasmtime-test-macros = { path = "crates/test-macros" } 130pulley-interpreter = { workspace = true, features = ["disas"] } 131wasm-encoder = { workspace = true } 132cranelift-native = { workspace = true } 133futures = { 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`. 138anyhow-for-testing = { workspace = true } 139 140[target.'cfg(windows)'.dev-dependencies] 141windows-sys = { workspace = true, features = ["Win32_System_Memory"] } 142 143[target.'cfg(unix)'.dev-dependencies] 144rustix = { workspace = true, features = ["param"] } 145 146[profile.release.build-override] 147opt-level = 0 148 149[workspace] 150resolver = '2' 151members = [ 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] 184exclude = [ 185 'docs/rust_wasi_markdown_parser', 186] 187 188[workspace.package] 189version = "43.0.0" 190authors = ["The Wasmtime Project Developers"] 191edition = "2024" 192# Wasmtime's current policy is that this number can be no larger than the 193# current stable release of Rust minus 2. 194rust-version = "1.91.0" 195 196[workspace.lints.rust] 197# Turn on some lints which are otherwise allow-by-default in rustc. 198unused_extern_crates = 'warn' 199trivial_numeric_casts = 'warn' 200unstable_features = 'warn' 201unused_import_braces = 'warn' 202unused-lifetimes = 'warn' 203unused-macro-rules = 'warn' 204 205# Don't warn about unknown cfgs for pulley 206[workspace.lints.rust.unexpected_cfgs] 207level = "warn" 208check-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. 218all = { level = 'allow', priority = -1 } 219clone_on_copy = 'warn' 220map_clone = 'warn' 221uninlined_format_args = 'warn' 222unnecessary_to_owned = 'warn' 223manual_strip = 'warn' 224useless_conversion = 'warn' 225unnecessary_mut_passed = 'warn' 226unnecessary_fallible_conversions = 'warn' 227unnecessary_cast = 'warn' 228allow_attributes_without_reason = 'warn' 229from_over_into = 'warn' 230redundant_field_names = 'warn' 231multiple_bound_locations = 'warn' 232extra_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 243wasmtime = { path = "crates/wasmtime", version = "43.0.0", default-features = false } 244wasmtime-cli-flags = { path = "crates/cli-flags", version = "=43.0.0" } 245wasmtime-environ = { path = "crates/environ", version = "=43.0.0" } 246wasmtime-wasi = { path = "crates/wasi", version = "43.0.0", default-features = false } 247wasmtime-wasi-io = { path = "crates/wasi-io", version = "43.0.0", default-features = false } 248wasmtime-wasi-http = { path = "crates/wasi-http", version = "43.0.0", default-features = false } 249wasmtime-wasi-nn = { path = "crates/wasi-nn", version = "43.0.0" } 250wasmtime-wasi-config = { path = "crates/wasi-config", version = "43.0.0" } 251wasmtime-wasi-keyvalue = { path = "crates/wasi-keyvalue", version = "43.0.0" } 252wasmtime-wasi-threads = { path = "crates/wasi-threads", version = "43.0.0" } 253wasmtime-wasi-tls = { path = "crates/wasi-tls", version = "43.0.0" } 254wasmtime-wasi-tls-nativetls = { path = "crates/wasi-tls-nativetls", version = "43.0.0" } 255wasmtime-wasi-tls-openssl = { path = "crates/wasi-tls-openssl", version = "43.0.0" } 256wasmtime-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. 265wasmtime-core = { path = "crates/core", version = "=43.0.0", package = 'wasmtime-internal-core' } 266wasmtime-wmemcheck = { path = "crates/wmemcheck", version = "=43.0.0", package = 'wasmtime-internal-wmemcheck' } 267wasmtime-c-api-macros = { path = "crates/c-api-macros", version = "=43.0.0", package = 'wasmtime-internal-c-api-macros' } 268wasmtime-cache = { path = "crates/cache", version = "=43.0.0", package = 'wasmtime-internal-cache' } 269wasmtime-cranelift = { path = "crates/cranelift", version = "=43.0.0", package = 'wasmtime-internal-cranelift' } 270wasmtime-winch = { path = "crates/winch", version = "=43.0.0", package = 'wasmtime-internal-winch' } 271wasmtime-explorer = { path = "crates/explorer", version = "=43.0.0", package = 'wasmtime-internal-explorer' } 272wasmtime-fiber = { path = "crates/fiber", version = "=43.0.0", package = 'wasmtime-internal-fiber' } 273wasmtime-jit-debug = { path = "crates/jit-debug", version = "=43.0.0", package = 'wasmtime-internal-jit-debug' } 274wasmtime-component-util = { path = "crates/component-util", version = "=43.0.0", package = 'wasmtime-internal-component-util' } 275wasmtime-component-macro = { path = "crates/component-macro", version = "=43.0.0", package = 'wasmtime-internal-component-macro' } 276wasmtime-versioned-export-macros = { path = "crates/versioned-export-macros", version = "=43.0.0", package = 'wasmtime-internal-versioned-export-macros' } 277wasmtime-jit-icache-coherence = { path = "crates/jit-icache-coherence", version = "=43.0.0", package = 'wasmtime-internal-jit-icache-coherence' } 278wasmtime-wit-bindgen = { path = "crates/wit-bindgen", version = "=43.0.0", package = 'wasmtime-internal-wit-bindgen' } 279wasmtime-unwinder = { path = "crates/unwinder", version = "=43.0.0", package = 'wasmtime-internal-unwinder' } 280wasmtime-debugger = { path = "crates/debugger", version = "=43.0.0", package = "wasmtime-internal-debugger" } 281wasmtime-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. 285wiggle = { path = "crates/wiggle", version = "=43.0.0", default-features = false } 286wiggle-macro = { path = "crates/wiggle/macro", version = "=43.0.0" } 287wiggle-generate = { path = "crates/wiggle/generate", version = "=43.0.0" } 288wasi-common = { path = "crates/wasi-common", version = "=43.0.0", default-features = false } 289pulley-interpreter = { path = 'pulley', version = "=43.0.0" } 290pulley-macros = { path = 'pulley/macros', version = "=43.0.0" } 291 292# Cranelift crates in this workspace 293cranelift-assembler-x64 = { path = "cranelift/assembler-x64", version = "0.130.0" } 294cranelift-codegen = { path = "cranelift/codegen", version = "0.130.0", default-features = false, features = ["std", "unwind"] } 295cranelift-frontend = { path = "cranelift/frontend", version = "0.130.0" } 296cranelift-entity = { path = "cranelift/entity", version = "0.130.0" } 297cranelift-native = { path = "cranelift/native", version = "0.130.0" } 298cranelift-module = { path = "cranelift/module", version = "0.130.0" } 299cranelift-interpreter = { path = "cranelift/interpreter", version = "0.130.0" } 300cranelift-reader = { path = "cranelift/reader", version = "0.130.0" } 301cranelift-filetests = { path = "cranelift/filetests" } 302cranelift-object = { path = "cranelift/object", version = "0.130.0" } 303cranelift-jit = { path = "cranelift/jit", version = "0.130.0" } 304cranelift-fuzzgen = { path = "cranelift/fuzzgen" } 305cranelift-bforest = { path = "cranelift/bforest", version = "0.130.0" } 306cranelift-bitset = { path = "cranelift/bitset", version = "0.130.0" } 307cranelift-control = { path = "cranelift/control", version = "0.130.0", default-features = false } 308cranelift-srcgen = { path = "cranelift/srcgen", version = "0.130.0" } 309cranelift = { path = "cranelift/umbrella", version = "0.130.0" } 310 311# Winch crates in this workspace. 312winch-codegen = { path = "winch/codegen", version = "=43.0.0" } 313 314# Internal crates not published to crates.io used in testing, builds, etc 315wasi-preview1-component-adapter = { path = "crates/wasi-preview1-component-adapter" } 316wasmtime-fuzzing = { path = "crates/fuzzing" } 317test-programs-artifacts = { path = 'crates/test-programs/artifacts' } 318wasmtime-test-util = { path = "crates/test-util" } 319byte-array-literals = { path = "crates/wasi-preview1-component-adapter/byte-array-literals" } 320pulley-interpreter-fuzz = { path = 'pulley/fuzz' } 321component-async-tests = { path = "crates/misc/component-async-tests" } 322 323# Bytecode Alliance maintained dependencies: 324# --------------------------- 325regalloc2 = "0.13.4" 326wasip1 = { version = "1.0.0", default-features = false } 327 328# cap-std family: 329target-lexicon = "0.13.0" 330cap-std = "3.4.5" 331cap-rand = { version = "3.4.5", features = ["small_rng"] } 332cap-fs-ext = "3.4.5" 333cap-net-ext = "3.4.5" 334cap-time-ext = "3.4.5" 335cap-tempfile = "3.4.5" 336fs-set-times = "0.20.3" 337system-interface = { version = "0.27.3", features = ["cap_std_impls"] } 338io-lifetimes = { version = "2.0.3", default-features = false } 339io-extras = "0.18.4" 340rustix = "1.0.8" 341# wit-bindgen: 342wit-bindgen = { version = "0.53.0", default-features = false } 343wit-bindgen-rust-macro = { version = "0.53.0", default-features = false } 344 345# wasm-tools family: 346wasmparser = { version = "0.245.0", default-features = false, features = ['simd'] } 347wat = "1.245.0" 348wast = "245.0.0" 349wasmprinter = "0.245.0" 350wasm-encoder = "0.245.0" 351wasm-smith = "0.245.0" 352wasm-mutate = "0.245.0" 353wit-parser = "0.245.0" 354wit-component = "0.245.0" 355wasm-wave = "0.245.0" 356wasm-compose = "0.245.0" 357json-from-wast = "0.245.0" 358 359# Non-Bytecode Alliance maintained dependencies: 360# -------------------------- 361arbitrary = "1.4.2" 362backtrace = "0.3.75" 363mutatis = "0.3.2" 364cc = "1.2.41" 365object = { version = "0.38.1", default-features = false, features = ['read_core', 'elf'] } 366gimli = { version = "0.33.0", default-features = false, features = ['read'] } 367addr2line = { version = "0.26.0", default-features = false } 368anyhow = { version = "1.0.100", default-features = false } 369anyhow-for-testing = { package = "anyhow", version = "1.0.100", default-features = false } 370windows-sys = "0.61.2" 371env_logger = "0.11.5" 372log = { version = "0.4.28", default-features = false } 373clap = { version = "4.5.48", default-features = false, features = ["std", "derive"] } 374clap_complete = "4.5.58" 375hashbrown = { version = "0.16", default-features = false } 376capstone = "0.13.0" 377smallvec = { version = "1.15.1", features = ["union"] } 378tracing = { version = "0.1.41", default-features = false } 379bitflags = "2.9.4" 380thiserror = "2.0.17" 381async-trait = "0.1.89" 382heck = "0.5" 383similar = "2.7.0" 384toml = "0.9.8" 385mach2 = "0.4.2" 386memfd = "0.6.5" 387psm = "0.1.11" 388proptest = "1.0.0" 389rand = { version = "0.9.2", features = ["small_rng"] } 390# serde and serde_derive must have the same version 391serde = { version = "1.0.228", default-features = false, features = ['alloc'] } 392serde_derive = "1.0.228" 393serde_json = "1.0.80" 394glob = "0.3.3" 395libfuzzer-sys = "0.4.10" 396walkdir = "2.5.0" 397cfg-if = "1.0" 398tempfile = "3.23.0" 399filecheck = "0.5.0" 400libc = { version = "0.2.177", default-features = true } 401file-per-thread-logger = "0.2.0" 402tokio = { version = "1.48.0", features = [ "rt", "time" ] } 403hyper = "1.7.0" 404http = "1.3.1" 405http-body = "1.0.1" 406http-body-util = "0.1.3" 407bytes = { version = "1.10.1", default-features = false } 408futures = { version = "0.3.31", default-features = false } 409indexmap = { version = "2.11.4", default-features = false } 410syn = "2.0.106" 411quote = "1.0.41" 412proc-macro2 = "1.0.101" 413test-log = { version = "0.2.18", default-features = false, features = ["trace"] } 414tracing-subscriber = { version = "0.3.20", default-features = false, features = ['fmt', 'env-filter', 'ansi', 'tracing-log'] } 415url = "2.5.7" 416postcard = { version = "1.1.3", default-features = false, features = ['alloc'] } 417criterion = { version = "0.7.0", default-features = false, features = ["html_reports", "rayon"] } 418rustc-hash = { version = "2.1.1", default-features = false } 419libtest-mimic = "0.8.1" 420semver = { version = "1.0.27", default-features = false } 421ittapi = "0.4.0" 422libm = "0.2.16" 423tokio-rustls = "0.25.0" 424rustls = "0.22.0" 425tokio-native-tls = "0.3.1" 426native-tls = "0.2.11" 427tokio-openssl = "0.6.5" 428openssl = "0.10.73" 429openssl-sys = "0.9.109" 430webpki-roots = "0.26.0" 431itertools = "0.14.0" 432base64 = "0.22.1" 433termcolor = "1.4.1" 434flate2 = "1.1.4" 435tokio-util = "0.7.16" 436arbtest = "0.3.2" 437rayon = "1.5.3" 438regex = "1.9.1" 439pin-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] 456default = [ 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. 511all-arch = ["wasmtime/all-arch"] 512winch = ["wasmtime/winch"] 513wmemcheck = ["wasmtime/wmemcheck"] 514trace-log = ["wasmtime/trace-log"] 515memory-protection-keys = ["wasmtime-cli-flags/memory-protection-keys"] 516profile-pulley = ["wasmtime/profile-pulley"] 517component-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] 524rr = ["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. 528disable-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. 535wasi-nn = ["dep:wasmtime-wasi-nn"] 536wasi-tls = ["dep:wasmtime-wasi-tls"] 537wasi-threads = ["dep:wasmtime-wasi-threads", "threads"] 538wasi-http = ["component-model", "dep:wasmtime-wasi-http", "dep:tokio", "dep:hyper", "wasmtime-wasi-http/default-send-request"] 539wasi-config = ["dep:wasmtime-wasi-config"] 540wasi-keyvalue = ["dep:wasmtime-wasi-keyvalue"] 541pooling-allocator = ["wasmtime/pooling-allocator", "wasmtime-cli-flags/pooling-allocator"] 542backtrace = ["wasmtime/backtrace"] 543component-model = [ 544 "wasmtime/component-model", 545 "wasmtime-wast?/component-model", 546 "wasmtime-cli-flags/component-model", 547 "wasmtime-wizer?/component-model", 548] 549wat = ["dep:wat", "wasmtime/wat"] 550cache = ["dep:wasmtime-cache", "wasmtime-cli-flags/cache"] 551parallel-compilation = ["wasmtime-cli-flags/parallel-compilation"] 552logging = ["wasmtime-cli-flags/logging"] 553demangle = ["wasmtime/demangle"] 554cranelift = ["wasmtime-cli-flags/cranelift", "dep:wasmtime-cranelift"] 555profiling = ["wasmtime/profiling", "wasmtime/call-hook"] 556coredump = ["wasmtime-cli-flags/coredump"] 557addr2line = ["wasmtime/addr2line"] 558debug-builtins = ["wasmtime/debug-builtins"] 559threads = ["wasmtime-cli-flags/threads"] 560gc = ["wasmtime-cli-flags/gc", "wasmtime/gc"] 561gc-drc = ["gc", "wasmtime/gc-drc", "wasmtime-cli-flags/gc-drc"] 562gc-null = ["gc", "wasmtime/gc-null", "wasmtime-cli-flags/gc-null"] 563pulley = ["wasmtime-cli-flags/pulley"] 564stack-switching = ["wasmtime/stack-switching", "wasmtime-cli-flags/stack-switching"] 565debug = ["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. 569serve = [ 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] 577explore = ["dep:wasmtime-explorer", "dep:tempfile"] 578wast = ["dep:wasmtime-wast"] 579config = ["cache"] 580compile = ["cranelift"] 581run = [ 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] 590completion = ["dep:clap_complete"] 591objdump = [ 592 'dep:object', 593 'dep:cranelift-codegen', 594 'dep:capstone', 595 'dep:termcolor', 596 'dep:gimli', 597 'pulley-interpreter/disas', 598] 599wizer = [ 600 "wasmtime-wizer", 601 "dep:wasmtime-wasi", 602 "dep:wasi-common", 603 "dep:tokio", 604 "wasmtime/wave", 605] 606 607[[test]] 608name = "disas" 609harness = false 610 611[[test]] 612name = "wast" 613harness = false 614 615[[test]] 616name = "wasi" 617harness = false 618 619[[example]] 620name = "tokio" 621required-features = ["wasi-common/tokio"] 622 623[[bench]] 624name = "compile" 625harness = false 626 627[[bench]] 628name = "instantiation" 629harness = false 630 631[[bench]] 632name = "thread_eager_init" 633harness = false 634 635[[bench]] 636name = "trap" 637harness = false 638 639[[bench]] 640name = "call" 641harness = false 642 643[[bench]] 644name = "wasi" 645harness = false 646 647[profile.release.package.wasi-preview1-component-adapter] 648opt-level = 's' 649strip = '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. 654incremental = false 655opt-level = 's' 656# Omit assertions, which include failure messages which require string 657# initializers. 658debug-assertions = false 659# Omit integer overflow checks, which include failure messages which require 660# string initializers. 661overflow-checks = false 662 663# Same as `wasi-preview1-component-adapter` above 664[profile.dev.package.wit-bindgen] 665incremental = false 666debug-assertions = false 667overflow-checks = false 668opt-level = 's' 669 670[profile.profiling] 671inherits = "bench" 672debug = "line-tables-only" 673 674[profile.fastest-runtime] 675inherits = "release" 676codegen-units = 1 677lto = true 678