1[package] 2authors.workspace = true 3description = "Fuzzing infrastructure for Wasmtime" 4edition.workspace = true 5rust-version.workspace = true 6name = "wasmtime-fuzzing" 7publish = false 8version = "0.0.0" 9license = "Apache-2.0 WITH LLVM-exception" 10 11[lints] 12workspace = true 13 14[build-dependencies] 15wasmtime-test-util = { workspace = true, features = ['wast'] } 16 17[dependencies] 18anyhow = { workspace = true } 19arbitrary = { workspace = true, features = ["derive"] } 20env_logger = { workspace = true } 21log = { workspace = true } 22mutatis = { workspace = true } 23rayon = "1.2.1" 24smallvec = { workspace = true } 25target-lexicon = { workspace = true } 26tempfile = "3.3.0" 27wasmparser = { workspace = true } 28wasmprinter = { workspace = true } 29wasmtime-wast = { workspace = true, features = ['component-model'] } 30wasmtime = { workspace = true, features = ['default', 'winch'] } 31wasm-encoder = { workspace = true } 32wasm-smith = { workspace = true, features = ['serde'] } 33wasm-mutate = { workspace = true } 34wasm-spec-interpreter = { path = "./wasm-spec-interpreter", optional = true } 35wasmi = { version = "0.43.1", default-features = false, features = ["std", "simd"] } 36futures = { workspace = true } 37wasmtime-test-util = { workspace = true, features = ['wast', 'component-fuzz', 'component'] } 38serde_json = { workspace = true } 39 40[dependencies.wasmtime-cli-flags] 41workspace = true 42features = [ 43 'async', 44 'component-model', 45 'component-model-async', 46 'cranelift', 47 'gc', 48 'gc-drc', 49 'gc-null', 50 'memory-protection-keys', 51 'pooling-allocator', 52 'pulley', 53 'threads', 54 'parallel-compilation', 55] 56 57# We rely on precompiled v8 binaries, but rusty-v8 doesn't have a precompiled 58# binary for MinGW which is built on our CI. It does have one for Windows-msvc, 59# though, so we could use that if we wanted. For now though just simplify a bit 60# and don't depend on this on Windows. The same applies on s390x and riscv. 61[target.'cfg(not(any(windows, target_arch = "s390x", target_arch = "riscv64")))'.dependencies] 62v8 = "134.5.0" 63 64[dev-dependencies] 65wat = { workspace = true } 66rand = { version = "0.8.0", features = ["small_rng"] } 67 68# Only enable the `build-libinterpret` feature when fuzzing is enabled, enabling 69# commands like `cargo test --workspace` or similar to not need an ocaml 70# installation and only fuzzers need it by default. 71[target.'cfg(fuzzing)'.dependencies] 72wasm-spec-interpreter = { path = "./wasm-spec-interpreter", optional = true, features = ['build-libinterpret'] } 73 74[features] 75fuzz-spec-interpreter = ['dep:wasm-spec-interpreter'] 76 77# Fuzz proof-carrying code. Off by default. 78fuzz-pcc = [] 79