bytecodealliance/wasmtime

Developer Tools

Run WebAssembly modules and components outside the browser, as a CLI or embedded in your host language.

18,766
1,891
Rust
Apache-2.0
9 years old

If you already have a .wasm file or a component built with wasm32-wasip2, Wasmtime is the shortest path to executing it on a server or desktop without writing a browser harness. It is a mature runtime rather than a quick demo, so the main decision is whether your embedding needs match what it supports.

The problem

You compile Rust, C, or another language to WebAssembly and then need to actually run it: from a shell for local testing, or from a host application that calls into the guest and exposes host functions back. The friction is that a .wasm binary is not executable by itself, and wiring a runtime into a host language means dealing with instantiation, imports, memory limits and WASI environment calls. With Wasmtime you install the CLI, run the component, and for embedding you pull in a language package and configure the runtime. The result is the same module running under a host process with explicit control over resources.

What's different

Wasmtime compiles WebAssembly with Cranelift, either at runtime (JIT) or ahead of time (AOT). That matters because the first call to a guest function is not interpreted, and repeated instantiation of many short-lived guests is a design goal rather than an afterthought. The CLI and the embedding libraries are the same engine, so a module tested in the shell behaves the same when embedded.

A second differentiator is the standards and security posture. The project says each feature goes through an RFC process and fuzzing, follows a documented release and security policy, and implements the official test suite plus the wasm-c-api. The trade-off is that this is an actively evolving runtime with feature staging and stability tiers; you inherit decisions about which proposals are enabled and how releases map to your host language package, rather than getting a frozen spec.

Who should try it

Good fit: a team that wants to sandbox a plugin or untrusted computation inside a Rust, Go, Python, .NET, C/C++, Ruby or C++ host, or that needs to run WASI components from a CLI. The language list matters, since several are documented as Bytecode Alliance-supported while Elixir and Perl are community packages with separate release cadences. A poor fit is someone who needs a browser-first runtime or only wants to execute WASI commands as an end user; in that case the broader WASI ecosystem and the guide are the place to start rather than the embedding API.

Requirements and limitations

Installation depends on your path: Linux and macOS can use the install script, while Windows and other cases are expected to fetch installers or binaries from the releases page. Building components from Rust requires rustup, and the README warns that a second system-installed Rust toolchain can send rustup target add to the wrong copy, so the toolchain layout is part of setup.

Ongoing work is the larger cost. The runtime exposes fine-grained control over CPU and memory, which means you need to set sensible limits for your environment instead of accepting defaults. Supported versions and stability tiers are documented separately, so pinning a release and tracking the security policy is part of maintenance. The API differs across host languages, so the package you embed dictates which docs to follow: the Rust crate, C/C++ headers, or the Python, Go, .NET and Ruby packages.

HotRepo's take

The only dated board signal is 2026-10-25, when the project appeared on the new-repository board at 18,761 stars with +9 that day. That is one observation and cannot support a trend; with a single recorded date, persistence of interest cannot be judged. The more useful pre-adoption check is the stability-tier documentation: confirm that the WebAssembly proposals and WASI version your module uses are on a supported tier for the release you plan to embed.

Project source and documentation

Hacker News

Wasmtime 4.0
▲ 4 · 2 comments · January 4, 2023
Wasmtime: A fast and secure runtime for WebAssembly
▲ 4 · 0 comments · September 27, 2022

Written by AI from the project's README, updated October 25, 2026. The project's own docs are the source of truth.