[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 [package.metadata.docs.rs] rustdoc-args = ["--cfg", "nightlydoc"] features = ["component-model"] [dependencies] wasmtime-runtime = { workspace = true } wasmtime-environ = { workspace = true } wasmtime-jit = { workspace = true } wasmtime-cache = { workspace = true, optional = true } wasmtime-fiber = { workspace = true, optional = true } wasmtime-cranelift = { workspace = true, optional = true } wasmtime-component-macro = { workspace = true, optional = true } wasmtime-component-util = { workspace = true, optional = true } target-lexicon = { workspace = true } wasmparser = { workspace = true } anyhow = { workspace = true } libc = "0.2" cfg-if = "1.0" log = { workspace = true } wat = { workspace = true, optional = true } serde = { version = "1.0.94", features = ["derive"] } bincode = "1.2.1" indexmap = "1.6" paste = "1.0.3" psm = "0.1.11" once_cell = { workspace = true } rayon = { version = "1.0", optional = true } object = { workspace = true } async-trait = { workspace = true, optional = true } encoding_rs = { version = "0.8.31", optional = true } [target.'cfg(target_os = "windows")'.dependencies.windows-sys] workspace = true features = [ "Win32_System_Diagnostics_Debug", ] [dev-dependencies] tempfile = "3.0" wasmtime-wasi = { path = "../wasi" } wasi-cap-std-sync = { path = "../wasi-common/cap-std-sync" } [badges] maintenance = { status = "actively-developed" } [features] default = [ 'async', 'cache', 'wat', 'jitdump', 'parallel-compilation', 'cranelift', 'pooling-allocator', 'vtune', ] # An on-by-default feature enabling runtime compilation of WebAssembly modules # with the Cranelift compiler. Cranelift is the default compilation backend of # Wasmtime. If disabled then WebAssembly modules can only be created from # precompiled WebAssembly modules. cranelift = ["dep:wasmtime-cranelift"] # Enables support for incremental compilation cache to be enabled in `Config`. incremental-cache = ["wasmtime-cranelift?/incremental-cache"] # Enables support for the `perf` jitdump profiler jitdump = ["wasmtime-jit/jitdump"] # Enables support for the `VTune` profiler vtune = ["wasmtime-jit/vtune"] # Enables parallel compilation of WebAssembly code. parallel-compilation = ["dep:rayon"] # Enables support for automatic cache configuration to be enabled in `Config`. cache = ["dep:wasmtime-cache"] # Enables support for "async stores" as well as defining host functions as # `async fn` and calling functions asynchronously. async = [ "dep:wasmtime-fiber", "wasmtime-runtime/async", "dep:async-trait", "wasmtime-component-macro?/async", ] # Enables support for the pooling instance allocation strategy pooling-allocator = ["wasmtime-runtime/pooling-allocator"] # Enables support for all architectures in Cranelift, allowing # cross-compilation using the `wasmtime` crate's API, notably the # `Engine::precompile_module` function. all-arch = ["wasmtime-cranelift?/all-arch"] # Enables trap handling using POSIX signals instead of Mach exceptions on MacOS. # It is useful for applications that do not bind their own exception ports and # need portable signal handling. posix-signals-on-macos = ["wasmtime-runtime/posix-signals-on-macos"] # Enables in-progress support for the component model. Note that this feature is # in-progress, buggy, and incomplete. This is primarily here for internal # testing purposes. component-model = [ "wasmtime-environ/component-model", "wasmtime-cranelift?/component-model", "wasmtime-runtime/component-model", "dep:wasmtime-component-macro", "dep:wasmtime-component-util", "dep:encoding_rs", ]