xref: /wasmtime-44.0.1/crates/fuzzing/Cargo.toml (revision ca8a1dee)
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