[package]
edition = "2021"
rust-version = "1.82.0"
name = "wasm-tools"
version = "1.245.0"
authors = ["The Wasmtime Project Developers"]
build = "build.rs"
exclude = [
"tests/wabt",
"tests/testsuite",
"tests/snapshots",
"ci",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "CLI tools for interoperating with WebAssembly files"
documentation = "https://github.com/bytecodealliance/wasm-tools"
readme = "README.md"
keywords = [
"webassembly",
"wasm",
]
categories = ["wasm"]
license = "Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT"
repository = "https://github.com/bytecodealliance/wasm-tools"
[package.metadata.binstall]
pkg-url = "{repo}/releases/download/v{version}/{name}-{version}-{target-arch}-{target-family}{archive-suffix}"
bin-dir = "{name}-{version}-{target-arch}-{target-family}/{bin}{binary-ext}"
pkg-fmt = "tgz"
[package.metadata.binstall.overrides.x86_64-apple-darwin]
pkg-url = "{repo}/releases/download/v{version}/{name}-{version}-{target-arch}-macos{archive-suffix}"
bin-dir = "{name}-{version}-{target-arch}-macos/{bin}{binary-ext}"
[package.metadata.binstall.overrides.aarch64-apple-darwin]
pkg-url = "{repo}/releases/download/v{version}/{name}-{version}-{target-arch}-macos{archive-suffix}"
bin-dir = "{name}-{version}-{target-arch}-macos/{bin}{binary-ext}"
[package.metadata.binstall.overrides.x86_64-pc-windows-msvc]
pkg-fmt = "zip"
[package.metadata.binstall.overrides.x86_64-pc-windows-gnu]
pkg-fmt = "zip"
[features]
addr2line = [
"dep:addr2line",
"dep:gimli",
]
completion = ["dep:clap_complete"]
component = [
"wit-component",
"wit-encoder",
"wit-parser",
"dep:wast",
"wasm-encoder",
"dep:serde_json",
]
compose = ["wasm-compose"]
default = [
"shrink",
"smith",
"mutate",
"validate",
"print",
"parse",
"dump",
"objdump",
"strip",
"compose",
"demangle",
"component",
"metadata",
"wit-smith",
"addr2line",
"completion",
"json-from-wast",
"wast",
"wit-dylib",
]
demangle = [
"rustc-demangle",
"cpp_demangle",
"wasm-encoder",
]
dump = []
json-from-wast = [
"dep:json-from-wast",
"dep:wast",
"dep:serde_json",
]
metadata = [
"wasm-metadata",
"dep:serde_json",
]
mutate = ["wasm-mutate"]
objdump = []
parse = []
print = []
shrink = [
"wasm-shrink",
"is_executable",
]
smith = [
"wasm-smith",
"arbitrary",
"dep:serde",
"dep:serde_derive",
"dep:serde_json",
]
strip = [
"wasm-encoder",
"regex",
]
validate = [
"rayon",
"dep:addr2line",
"dep:gimli",
"dep:bitflags",
"wasmparser/validate",
"wasmparser/features",
]
wast = [
"dep:wast",
"wast/component-model",
"wasm-encoder/wasmparser",
"dep:pretty_assertions",
"validate",
"dump",
"json-from-wast",
]
wit-dylib = [
"dep:wit-dylib",
"wit-dylib/clap",
"wit-parser",
"wit-component",
]
wit-smith = [
"dep:wit-smith",
"arbitrary",
]
[lib]
name = "wasm_tools"
path = "src/lib.rs"
[[bin]]
name = "wasm-tools"
path = "src/bin/wasm-tools/main.rs"
[[example]]
name = "wasm-smith"
path = "examples/wasm-smith.rs"
[[test]]
name = "cli"
path = "tests/cli.rs"
harness = false
[dependencies.addr2line]
version = "0.24.0"
optional = true
[dependencies.anyhow]
version = "1.0.58"
default-features = false
[dependencies.arbitrary]
version = "1.1.0"
optional = true
[dependencies.bitflags]
version = "2.5.0"
optional = true
[dependencies.bytesize]
version = "2.0.0"
[dependencies.clap]
version = "4.0.0"
features = [
"derive",
"wrap_help",
]
[dependencies.clap_complete]
version = "4.4.7"
optional = true
[dependencies.comfy-table]
version = "7.1.3"
default-features = false
[dependencies.cpp_demangle]
version = "0.4.0"
optional = true
[dependencies.env_logger]
version = "0.11"
[dependencies.gimli]
version = "0.31.1"
optional = true
[dependencies.json-from-wast]
version = "0.245.0"
optional = true
[dependencies.log]
version = "0.4.17"
[dependencies.pretty_assertions]
version = "1.3.0"
optional = true
[dependencies.rayon]
version = "1.3"
optional = true
[dependencies.regex]
version = "1.6.0"
optional = true
[dependencies.rustc-demangle]
version = "0.1.21"
optional = true
[dependencies.serde]
version = "1.0.166"
features = ["alloc"]
optional = true
default-features = false
[dependencies.serde_derive]
version = "1.0.166"
optional = true
[dependencies.serde_json]
version = "1"
optional = true
[dependencies.tempfile]
version = "3.2.0"
[dependencies.termcolor]
version = "1.2.0"
[dependencies.wasm-compose]
version = "0.245.0"
optional = true
[dependencies.wasm-encoder]
version = "0.245.0"
features = ["std"]
optional = true
default-features = false
[dependencies.wasm-metadata]
version = "0.245.0"
features = [
"clap",
"default",
]
optional = true
default-features = false
[dependencies.wasm-mutate]
version = "0.245.0"
features = ["clap"]
optional = true
[dependencies.wasm-shrink]
version = "0.245.0"
features = ["clap"]
optional = true
[dependencies.wasm-smith]
version = "0.245.0"
features = [
"_internal_cli",
"wasmparser",
]
optional = true
[dependencies.wasmparser]
version = "0.245.0"
features = [
"simd",
"std",
"component-model",
"simd",
]
default-features = false
[dependencies.wasmprinter]
version = "0.245.0"
features = [
"component-model",
"validate",
]
default-features = false
[dependencies.wast]
version = "245.0.0"
features = [
"wasm-module",
"component-model",
]
optional = true
default-features = false
[dependencies.wat]
version = "1.245.0"
features = [
"dwarf",
"component-model",
]
default-features = false
[dependencies.wit-component]
version = "0.245.0"
features = [
"dummy-module",
"wat",
"semver-check",
]
optional = true
[dependencies.wit-dylib]
version = "0.245.0"
optional = true
[dependencies.wit-encoder]
version = "0.245.0"
optional = true
[dependencies.wit-parser]
version = "0.245.0"
features = [
"decoding",
"wat",
"serde",
]
optional = true
[dependencies.wit-smith]
version = "0.245.0"
features = ["clap"]
optional = true
[dev-dependencies.arbitrary]
version = "1.1.0"
[dev-dependencies.indexmap]
version = "2.13.0"
default-features = false
[dev-dependencies.libtest-mimic]
version = "0.8.1"
[dev-dependencies.pretty_assertions]
version = "1.3.0"
[dev-dependencies.serde_json]
version = "1.0"
[dev-dependencies.tempfile]
version = "3.2.0"
[dev-dependencies.wasm-smith]
version = "0.245.0"
[dev-dependencies.wast]
version = "245.0.0"
default-features = false
[target.'cfg(not(target_family = "wasm"))'.dependencies.is_executable]
version = "1.0.1"
optional = true
[lints.clippy]
clone_on_copy = "warn"
manual_strip = "warn"
map_clone = "warn"
uninlined_format_args = "warn"
unnecessary_cast = "warn"
unnecessary_fallible_conversions = "warn"
unnecessary_mut_passed = "warn"
unnecessary_to_owned = "warn"
[lints.clippy.all]
level = "allow"
priority = -1
[lints.rust]
deprecated-safe-2024 = "warn"
keyword_idents_2024 = "warn"
missing-unsafe-on-extern = "warn"
rust-2024-guarded-string-incompatible-syntax = "warn"
rust-2024-incompatible-pat = "warn"
rust-2024-prelude-collisions = "warn"
unsafe-attr-outside-unsafe = "warn"
unsafe-op-in-unsafe-fn = "warn"
unsafe_code = "deny"
unstable_features = "warn"
unused-lifetimes = "warn"
unused-macro-rules = "warn"
unused_extern_crates = "warn"
unused_import_braces = "warn"
[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = [
"cfg(fuzzing)",
"cfg(debug_check_try_op)",
]