sc-executor-wasmtime 0.26.0

Defines a `WasmRuntime` that uses the Wasmtime JIT to execute.
Documentation
[package]
name = "sc-executor-wasmtime"
version = "0.26.0"
authors.workspace = true
edition.workspace = true
license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
homepage = "https://substrate.io"
repository.workspace = true
description = "Defines a `WasmRuntime` that uses the Wasmtime JIT to execute."
readme = "README.md"

[package.metadata.docs.rs]
targets = ["x86_64-unknown-linux-gnu"]

[dependencies]
log = "0.4.17"
cfg-if = "1.0"
libc = "0.2.121"
parking_lot = "0.12.1"

# When bumping wasmtime do not forget to also bump rustix
# to exactly the same version as used by wasmtime!
wasmtime = { version = "8.0.1", default-features = false, features = [
	"cache",
	"cranelift",
	"jitdump",
	"parallel-compilation",
	"pooling-allocator"
] }
anyhow = "1.0.68"
sc-allocator = { version = "20.0.0", path = "../../allocator" }
sc-executor-common = { version = "0.26.0", path = "../common" }
sp-runtime-interface = { version = "21.0.0", path = "../../../primitives/runtime-interface" }
sp-wasm-interface = { path = "../../../primitives/wasm-interface", features = ["wasmtime"], version = "18.0.0" }

# Here we include the rustix crate in the exactly same semver-compatible version as used by
# wasmtime and enable its 'use-libc' flag.
#
# By default rustix directly calls the appropriate syscalls completely bypassing libc;
# this doesn't have any actual benefits for us besides making it harder to debug memory
# problems (since then `mmap` etc. cannot be easily hooked into).
rustix = { version = "0.36.7", default-features = false, features = ["std", "mm", "fs", "param", "use-libc"] }

[dev-dependencies]
wat = "1.0"
sc-runtime-test = { path = "../runtime-test" }
sp-io = { path = "../../../primitives/io" }
tempfile = "3.3.0"
paste = "1.0"
codec = { package = "parity-scale-codec", version = "3.6.1" }
cargo_metadata = "0.15.4"