[package] authors.workspace = true description = "Fuzzing infrastructure for Wasmtime" edition.workspace = true name = "wasmtime-fuzzing" publish = false version = "0.0.0" license = "Apache-2.0 WITH LLVM-exception" [dependencies] anyhow = { workspace = true } arbitrary = { version = "1.1.0", features = ["derive"] } component-test-util = { workspace = true } component-fuzz-util = { workspace = true } env_logger = { workspace = true } log = { workspace = true } rayon = "1.2.1" target-lexicon = { workspace = true } tempfile = "3.3.0" wasmparser = { workspace = true } wasmprinter = { workspace = true } wasmtime = { workspace = true, features = ['default'] } wasmtime-wast = { workspace = true } wasm-encoder = { workspace = true } wasm-smith = { workspace = true } wasm-mutate = { workspace = true } wasm-spec-interpreter = { path = "./wasm-spec-interpreter", optional = true } wasmi = "0.20.0" # We rely on precompiled v8 binaries, but rusty-v8 doesn't have a precompiled # binary for MinGW which is built on our CI. It does have one for Windows-msvc, # though, so we could use that if we wanted. For now though just simplify a bit # and don't depend on this on Windows. The same applies on s390x and riscv. [target.'cfg(not(any(windows, target_arch = "s390x", target_arch = "riscv64")))'.dependencies] v8 = "0.44.3" [dev-dependencies] wat = { workspace = true } rand = { version = "0.8.0", features = ["small_rng"] } # Only enable the `build-libinterpret` feature when fuzzing is enabled, enabling # commands like `cargo test --workspace` or similar to not need an ocaml # installation and only fuzzers need it by default. [target.'cfg(fuzzing)'.dependencies] wasm-spec-interpreter = { path = "./wasm-spec-interpreter", optional = true, features = ['build-libinterpret'] } [features] fuzz-spec-interpreter = ['wasm-spec-interpreter'] winch = ["wasmtime/winch"]