xref: /wasmtime-44.0.1/crates/fuzzing/Cargo.toml (revision 122ddc71)
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]
18wasmtime-environ = { workspace = true }
19backtrace = { workspace = true }
20arbitrary = { workspace = true, features = ["derive"] }
21env_logger = { workspace = true }
22log = { workspace = true }
23mutatis = { workspace = true }
24rayon = "1.2.1"
25smallvec = { workspace = true }
26target-lexicon = { workspace = true }
27tempfile = "3.3.0"
28wasmparser = { workspace = true }
29wasmprinter = { workspace = true }
30wasmtime-wast = { workspace = true, features = ['component-model'] }
31wasmtime = { workspace = true, features = ['default', 'winch'] }
32wasmtime-core = { workspace = true, features = ['backtrace', 'serde'] }
33wasm-encoder = { workspace = true }
34wasm-smith = { workspace = true, features = ['serde'] }
35wasm-mutate = { workspace = true }
36wasm-compose = { workspace = true }
37wasm-spec-interpreter = { path = "./wasm-spec-interpreter", optional = true }
38wasmi = { version = "1.0.8", default-features = false, features = ["std", "simd"] }
39futures = { workspace = true, features = ['async-await'] }
40wasmtime-test-util = { workspace = true, features = ['wast', 'component-fuzz', 'component'] }
41serde_json = { workspace = true }
42serde = { workspace = true }
43test-programs-artifacts = { workspace = true }
44wasmtime-wasi = { workspace = true }
45indexmap = { workspace = true }
46
47[dependencies.wasmtime-cli-flags]
48workspace = true
49features = [
50  'async',
51  'component-model',
52  'component-model-async',
53  'cranelift',
54  'gc',
55  'gc-drc',
56  'gc-null',
57  'memory-protection-keys',
58  'pooling-allocator',
59  'pulley',
60  'threads',
61  'parallel-compilation',
62]
63
64# We rely on precompiled v8 binaries, but rusty-v8 doesn't have a precompiled
65# binary for MinGW which is built on our CI. It does have one for Windows-msvc,
66# though, so we could use that if we wanted. For now though just simplify a bit
67# and don't depend on this on Windows.  The same applies on s390x and riscv.
68[target.'cfg(not(any(windows, target_arch = "s390x", target_arch = "riscv64")))'.dependencies]
69v8 = "139.0.0"
70
71[dev-dependencies]
72wat = { workspace = true }
73rand = { version = "0.8.0", features = ["small_rng"] }
74wasmtime-environ = { workspace = true }
75cranelift-bforest = { workspace = true }
76cranelift-bitset = { workspace = true }
77tokio = { workspace = true, features = ["rt", "time", "macros", "rt-multi-thread"] }
78
79# Only enable the `build-libinterpret` feature when fuzzing is enabled, enabling
80# commands like `cargo test --workspace` or similar to not need an ocaml
81# installation and only fuzzers need it by default.
82[target.'cfg(fuzzing)'.dependencies]
83wasm-spec-interpreter = { path = "./wasm-spec-interpreter", optional = true, features = ['build-libinterpret'] }
84
85[features]
86fuzz-spec-interpreter = ['dep:wasm-spec-interpreter']
87