sc-executor-wasmtime 0.37.0-rc1

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

[lints]
workspace = true

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

[dependencies]
cfg-if = { workspace = true }
libc = { workspace = true }
log = { workspace = true, default-features = true }
parking_lot = { workspace = true, default-features = true }

# When bumping wasmtime do not forget to also bump rustix
# to exactly the same version as used by wasmtime!
anyhow = { workspace = true }
sc-allocator.workspace = true
sc-allocator.default-features = true
sc-executor-common.workspace = true
sc-executor-common.default-features = true
sp-runtime-interface.workspace = true
sp-runtime-interface.default-features = true
sp-wasm-interface = { features = ["wasmtime"], workspace = true, default-features = true }
wasmtime = { features = [
	"cache",
	"cranelift",
	"jitdump",
	"parallel-compilation",
	"pooling-allocator",
], workspace = true }

# 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 = { features = ["fs", "mm", "param", "std", "use-libc"], workspace = true }

[dev-dependencies]
cargo_metadata = { workspace = true }
codec = { workspace = true, default-features = true }
paste = { workspace = true, default-features = true }
sc-runtime-test = { path = "../runtime-test" }
sp-io = { default-features = true, path = "../../../primitives/io" }
tempfile = { workspace = true }
wat = { workspace = true }