用途:引导使用者用 wasmtime 运行 WASM 模块、使用 WASI API、组件模型与 WIT 接口、在 Rust 应用中嵌入 wasmtime、用 fuel 计量实现沙箱执行限制,以及用 DWARF 调试信息排查 WASM 问题。
主要能力:
- wasmtime CLI:安装 curl https://wasmtime.dev/install.sh -sSf | bash;运行 wasmtime hello.wasm;传参 wasmtime prog.wasm -- arg1 arg2;预开目录 wasmtime --dir /tmp::/ prog.wasm;传环境变量 wasmtime --env HOME=/home/user prog.wasm;调用导出函数 wasmtime run --invoke add math.wasm 3 4;查看导出 wasmtime inspect math.wasm;AOT 编译 wasmtime compile prog.wasm -o prog.cwasm 后 wasmtime run prog.cwasm。
- WASI preview2:能力式类 POSIX API,涉及 wasi:filesystem、wasi:sockets、wasi:http(实验)、wasi:cli、wasi:random、wasi:clocks。
- Rust 嵌入:依赖 wasmtime、wasmtime-wasi、anyhow;用 Engine、Module、WasiCtxBuilder、Store、Instance 加载调用导出函数。
- fuel 计量:config.consume_fuel(true),store.set_fuel(1_000_000) 限制指令数,fuel 耗尽时返回错误。
- 组件模型与 WIT:用 wasm-tools、cargo-component 构建组件,wasmtime run 运行组件,或在 Rust 中以 bindgen! 绑定并实例化调用。
使用方式与限制:调试可用 WASMTIME_BACKTRACE_DETAILS=1、--debug-info,以及 wasm-tools print/validate。WASM GC、线程与共享内存、异常处理等提案依赖 wasmtime 版本与特性开关,旧版本可能需 -W/-S 覆盖。WASI p1 迁移到 p2 需用 WIT 重新生成绑定。具体性能配置(OptLevel、并行编译、缓存)需按嵌入场景设置。资料未提供收费、价格、平台支持范围与基准效果等信息。