Repolode
bytecodealliance

bytecodealliance/wasmtime

基于 Cranelift 代码生成器的独立 WebAssembly 运行时,支持 WASI 并提供多语言嵌入接口。

Star
18,744
Fork
1,879
未关闭 Issue
888
最近提交
5小时前

这是什么?

Wasmtime 是一个独立的 WebAssembly 运行时。WebAssembly 是一种可移植的二进制格式,可在浏览器内外运行代码。你可以通过命令行 wasmtime CLI 直接运行 WebAssembly 组件,也可以通过 Rust crate 或 C、C++、Python、.NET、Go、Ruby 等语言的绑定将其嵌入应用中。

它使用 Cranelift 代码生成器,既支持运行时即时编译,也支持提前编译。项目提供 CPU 和内存占用的配置选项,并实现了 WASI 接口,使客户程序能够访问文件等宿主环境资源。项目通过了官方 WebAssembly 测试套件,并实现了官方 wasm C API。

Wasmtime 由 Bytecode Alliance 维护,使用 Rust 编写。

核心功能

  • 01使用 Cranelift 代码生成器,支持运行时编译和提前编译。
  • 02提供 WASI 接口,让 WebAssembly 程序访问宿主环境资源。
  • 03可配置 CPU 和内存的使用方式。
  • 04附带命令行工具,可直接运行 WebAssembly 组件。
  • 05提供 Rust、C、C++、Python、.NET、Go、Ruby 等语言的嵌入绑定。

适用场景

  • 在命令行中运行 WebAssembly 组件。
  • 在 Rust 或 C 应用中嵌入沙箱化的 WebAssembly 运行时。
  • 通过基于 WASI 的宿主接口执行不可信的插件代码。

快速上手

  1. 1

    使用官方安装脚本或从发布页面安装 Wasmtime CLI

  2. 2

    为 Rust 添加 WebAssembly WASI 编译目标

    rustup target add wasm32-wasip2
  3. 3

    将 Rust 的 Hello World 程序编译为 WebAssembly 组件

    rustc hello.rs --target wasm32-wasip2
  4. 4

    使用 Wasmtime 运行编译好的组件

    wasmtime hello.wasm

使用前须知

  • 一键安装脚本的文档仅覆盖 Linux 和 macOS;Windows 用户需要从发布页面下载。

标签

常见问题

wasmtime 是什么?
基于 Cranelift 代码生成器的独立 WebAssembly 运行时,支持 WASI 并提供多语言嵌入接口。 Wasmtime 是一个独立的 WebAssembly 运行时。WebAssembly 是一种可移植的二进制格式,可在浏览器内外运行代码。你可以通过命令行 wasmtime CLI 直接运行 WebAssembly 组件,也可以通过 Rust crate 或 C、C++、Python、.NET、Go、Ruby 等语言的绑定将其嵌入应用中。
wasmtime 可以免费使用吗?用的什么许可证?
wasmtime 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
wasmtime 还在维护吗?
活跃维护中。wasmtime 最近一次提交是在 2026年10月21日。
wasmtime 适合用来做什么?
在命令行中运行 WebAssembly 组件。 在 Rust 或 C 应用中嵌入沙箱化的 WebAssembly 运行时。 通过基于 WASI 的宿主接口执行不可信的插件代码。
wasmtime 怎么安装和运行?
使用官方安装脚本或从发布页面安装 Wasmtime CLI 为 Rust 添加 WebAssembly WASI 编译目标: rustup target add wasm32-wasip2 将 Rust 的 Hello World 程序编译为 WebAssembly 组件: rustc hello.rs --target wasm32-wasip2 使用 Wasmtime 运行编译好的组件: wasmtime hello.wasm
在哪里获取 wasmtime?
源代码和安装说明在 GitHub 上:https://github.com/bytecodealliance/wasmtime

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目