wasmi 0.38.0

WebAssembly interpreter
Documentation
[package]
name = "wasmi"
version.workspace = true
rust-version.workspace = true
documentation = "https://docs.rs/wasmi/"
description = "WebAssembly interpreter"
authors.workspace = true
repository.workspace = true
edition.workspace = true
readme.workspace = true
license.workspace = true
keywords.workspace = true
categories.workspace = true
exclude = [
    "benches/wat",
    "benches/wasm",
    "tests/spec/testsuite",
    "**.wast",
]

[dependencies]
wasmparser = { version = "0.100.2", package = "wasmparser-nostd", default-features = false }
wasmi_core = { workspace = true }
wasmi_collections = { workspace = true }
wasmi_ir = { workspace = true }
spin = { version = "0.9", default-features = false, features = [
    "mutex",
    "spin_mutex",
    "rwlock",
] }
smallvec = { version = "1.13.1", features = ["union"] }
multi-stash = { version = "0.2.0" }
arrayvec = { version = "0.7.4", default-features = false }

[dev-dependencies]
wat = "1"
assert_matches = "1.5"
wast = "70.0.2"
anyhow = "1.0"
criterion = { version = "0.5", default-features = false }

[features]
default = ["std", "no-hash-maps"]
std = [
    "wasmi_core/std",
    "wasmi_collections/std",
    "wasmparser/std",
    "spin/std",
    "arrayvec/std",
]
# Tells the `wasmi` crate to avoid using hash based data structures.
# 
# Some embedded environments cannot provide a random source which is required
# to properly initialize hashmap based data structures for resilience against
# malious actors that control their inputs.
#
# An example of such an environment is `wasm32-unknown-unknown`.
no-hash-maps = ["wasmi_collections/no-hash-maps"]

# Enables extra checks performed during Wasmi bytecode execution.
#
# These checks are unnecessary as long as Wasmi translation works as intended.
# If Wasmi translation invariants are broken due to bugs, these checks prevent
# Wasmi execution to exhibit undefined behavior (UB) in certain cases.
#
# Expected execution overhead is upt to 20%, if enabled.
#
# - Enable if your focus is on safety.
# - Disable if your focus is on execution speed.
extra-checks = []

[[bench]]
name = "benches"
harness = false