[package]
name = "wasmtime"
version.workspace = true
authors.workspace = true
description = "High-level API to expose the Wasmtime runtime"
documentation = "https://docs.rs/wasmtime"
license = "Apache-2.0 WITH LLVM-exception"
repository = "https://github.com/bytecodealliance/wasmtime"
readme = "README.md"
edition.workspace = true
rust-version.workspace = true
[lints]
workspace = true
[package.metadata.docs.rs]
all-features = true
[dependencies]
wasmtime-asm-macros = { workspace = true, optional = true }
wasmtime-environ = { workspace = true }
wasmtime-jit-debug = { workspace = true, features = ["gdb_jit_int", "perf_jitdump"], optional = true }
wasmtime-jit-icache-coherence = { workspace = true, optional = true }
wasmtime-cache = { workspace = true, optional = true }
wasmtime-fiber = { workspace = true, optional = true }
wasmtime-cranelift = { workspace = true, optional = true }
wasmtime-winch = { workspace = true, optional = true }
wasmtime-component-macro = { workspace = true, optional = true }
wasmtime-component-util = { workspace = true, optional = true }
wasmtime-slab = { workspace = true, optional = true }
wasmtime-versioned-export-macros = { workspace = true }
wasmtime-wmemcheck = { workspace = true, optional = true }
pulley-interpreter = { workspace = true, optional = true }
target-lexicon = { workspace = true }
wasmparser = { workspace = true }
wasm-encoder = { workspace = true, optional = true }
anyhow = { workspace = true }
libc = { workspace = true }
cfg-if = { workspace = true }
log = { workspace = true }
wat = { workspace = true, optional = true }
serde = { workspace = true }
serde_derive = { workspace = true }
serde_json = { workspace = true, optional = true }
sptr = { workspace = true }
postcard = { workspace = true }
indexmap = { workspace = true }
paste = "1.0.3"
once_cell = { version = "1.12.0", optional = true }
rayon = { version = "1.0", optional = true }
object = { workspace = true }
async-trait = { workspace = true, optional = true }
encoding_rs = { version = "0.8.31", optional = true }
bumpalo = "3.11.0"
fxprof-processed-profile = { version = "0.6.0", optional = true }
gimli = { workspace = true, optional = true }
addr2line = { workspace = true, optional = true }
semver = { workspace = true, optional = true }
smallvec = { workspace = true, optional = true }
hashbrown = { workspace = true }
libm = "0.2.7"
bitflags = { workspace = true }
[target.'cfg(target_os = "windows")'.dependencies.windows-sys]
workspace = true
optional = true
features = [
"Win32_Foundation",
"Win32_System_Kernel",
"Win32_System_Memory",
"Win32_System_Diagnostics_Debug",
"Win32_System_SystemInformation",
"Win32_Storage_FileSystem",
"Win32_Security",
]
[target.'cfg(all(target_arch = "x86_64", target_os = "linux"))'.dependencies]
ittapi = { workspace = true, optional = true }
[target.'cfg(all(target_arch = "x86_64", target_os = "macos"))'.dependencies]
ittapi = { workspace = true, optional = true }
[target.'cfg(all(target_arch = "x86_64", target_os = "windows"))'.dependencies]
ittapi = { workspace = true, optional = true }
[target.'cfg(target_os = "linux")'.dependencies]
memfd = { workspace = true, optional = true }
[target.'cfg(target_os = "macos")'.dependencies]
mach2 = { workspace = true, optional = true }
[target.'cfg(unix)'.dependencies]
rustix = { workspace = true, optional = true }
[target.'cfg(target_arch = "s390x")'.dependencies]
psm = { workspace = true, optional = true }
[dev-dependencies]
env_logger = { workspace = true }
proptest = { workspace = true }
rand = { workspace = true }
tempfile = { workspace = true }
wasi-common = { path = "../wasi-common", default-features = true }
[build-dependencies]
cc = { workspace = true, optional = true }
wasmtime-versioned-export-macros = { workspace = true, optional = true }
[features]
default = [
'async',
'cache',
'gc',
'gc-drc',
'gc-null',
'wat',
'profiling',
'parallel-compilation',
'cranelift',
'pooling-allocator',
'demangle',
'addr2line',
'coredump',
'debug-builtins',
'runtime',
'component-model',
'threads',
'std',
]
cranelift = ["dep:wasmtime-cranelift", "std"]
winch = ["dep:wasmtime-winch", "std"]
pulley = ["dep:pulley-interpreter", "wasmtime-cranelift?/pulley"]
incremental-cache = ["wasmtime-cranelift?/incremental-cache", "std"]
profiling = [
"dep:fxprof-processed-profile",
"dep:wasmtime-jit-debug",
"dep:ittapi",
"dep:rustix",
"rustix/thread",
"dep:serde_json",
"std",
]
parallel-compilation = ["dep:rayon", "std"]
cache = ["dep:wasmtime-cache", "std"]
async = [
"dep:wasmtime-fiber",
"dep:async-trait",
"wasmtime-component-macro?/async",
"runtime",
"std",
]
pooling-allocator = ["runtime", "std"]
all-arch = ["wasmtime-cranelift?/all-arch", "wasmtime-winch?/all-arch", "pulley"]
component-model = [
"wasmtime-environ/component-model",
"wasmtime-cranelift?/component-model",
"wasmtime-winch?/component-model",
"dep:wasmtime-component-macro",
"dep:wasmtime-component-util",
"dep:encoding_rs",
"dep:semver",
]
wmemcheck = [
"dep:wasmtime-wmemcheck",
"wasmtime-cranelift?/wmemcheck",
"wasmtime-environ/wmemcheck",
"std",
]
trace-log = ["wasmtime-cranelift?/trace-log"]
demangle = ["wasmtime-environ/demangle", "std"]
coredump = ["dep:wasm-encoder", "runtime", "std"]
debug-builtins = ["dep:wasmtime-jit-debug", "std"]
runtime = [
"dep:cc",
"dep:smallvec",
"dep:mach2",
"dep:memfd",
"dep:wasmtime-asm-macros",
"dep:wasmtime-jit-icache-coherence",
"dep:wasmtime-slab",
"dep:wasmtime-versioned-export-macros",
"dep:windows-sys",
"dep:psm",
"dep:rustix",
"rustix/mm",
"pulley-interpreter?/interp",
]
gc = ["wasmtime-environ/gc", "wasmtime-cranelift?/gc"]
gc-drc = ["gc", "wasmtime-environ/gc-drc", "wasmtime-cranelift?/gc-drc"]
gc-null = ["gc", "wasmtime-environ/gc-null", "wasmtime-cranelift?/gc-null"]
threads = ["wasmtime-cranelift?/threads", "std"]
addr2line = ["dep:addr2line", "dep:gimli", "std"]
std = [
'postcard/use-std',
'wasmtime-component-macro?/std',
'wasmtime-environ/std',
'object/std',
'once_cell',
]
call-hook = []
memory-protection-keys = ["pooling-allocator"]
reexport-wasmparser = []