[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fpqqv7lgyc9wo":3},{"code":4,"message":5,"data":6,"timestamp":65},10000,"success",{"full_name":7,"position":8,"description":9,"language":10,"stars":11,"forks":12,"stars_gained":13,"age_days":14,"hn_threads":15,"one_liner":40,"summary_md":41,"topic":42,"github_topics":45,"license":59,"homepage":60,"updated_at":61,"history":62},"bytecodealliance\u002Fwasmtime",12,"A lightweight WebAssembly runtime that is fast, secure, and standards-compliant","Rust",18770,1891,9,3344,[16,22,27,31,36],{"id":17,"title":18,"points":19,"comments":20,"posted_at":21},34240922,"Wasmtime 4.0",4,2,"2023-01-04",{"id":23,"title":24,"points":19,"comments":25,"posted_at":26},33001134,"Wasmtime: A fast and secure runtime for WebAssembly",0,"2022-09-27",{"id":28,"title":29,"points":19,"comments":25,"posted_at":30},29875430,"Cranelift (a code generator, similar to LLVM, but more lightweight)","2022-01-10",{"id":32,"title":33,"points":34,"comments":25,"posted_at":35},33252367,"Isle: Instruction Selection\u002FLowering Expressions DSL",1,"2022-10-18",{"id":37,"title":38,"points":34,"comments":25,"posted_at":39},31774313,"Wasmtime: Standalone JIT-style runtime for WebAssembly, using Cranelift","2022-06-17","在浏览器之外运行 WebAssembly 模块和组件，可用 CLI，也可嵌入宿主语言。","如果你手上已经有 .wasm 文件或用 wasm32-wasip2 编译出的组件，Wasmtime 是把它放到服务器或桌面上执行的一条短路径，不必自己搭浏览器环境。它是一个成熟的运行时而不是演示玩具，关键判断在于你的嵌入需求是否与它提供的能力匹配。\n\n## 解决什么问题\n\n你用 Rust、C 或其他语言把代码编译成 WebAssembly，接下来要真的把它跑起来：可能是在终端里做本地测试，也可能是让宿主程序调用 guest 函数、再向 guest 提供宿主函数。麻烦在于 .wasm 二进制本身不可执行，而把运行时接进宿主语言要处理实例化、导入、内存限制和 WASI 环境调用。用 Wasmtime，你装好 CLI 就能运行组件；做嵌入则引入对应语言的包并配置运行时。最终得到的是同一个模块在宿主进程里运行，并且对资源有显式控制。\n\n## 有什么不同\n\nWasmtime 用 Cranelift 编译 WebAssembly，可以在运行时 JIT，也可以提前 AOT 编译。这意味着第一次调用 guest 函数不是解释执行，大量创建和销毁短生命周期 guest 也是设计目标之一，而不是事后补上的能力。CLI 和嵌入库共用同一个引擎，因此先在终端里测试过的模块，嵌入后行为一致。\n\n第二个不同点是标准与安全策略。项目表示每项功能都经过 RFC 流程和 fuzzing，有明确的发布策略和安全策略，实现了官方测试套件以及 wasm-c-api。代价是这是一个持续演进的运行时，功能有分阶段上线和稳定性分级；你需要接受关于启用哪些提案、以及发布版本如何对应宿主语言包的决策，而不是拿到一个冻结的规范。\n\n## 谁值得试\n\n适合：希望在 Rust、Go、Python、.NET、C\u002FC++、Ruby 等宿主里沙箱化插件或不可信计算，或者需要从 CLI 运行 WASI 组件的团队。语言列表本身很重要——其中若干由 Bytecode Alliance 官方支持，而 Elixir 和 Perl 是社区包，发布节奏独立。不适合：需要浏览器优先运行时，或者只是作为终端用户想跑 WASI 命令的人；这类场景应先看 WASI 生态和官方指南，而不是嵌入 API。\n\n## 使用条件与边界\n\n安装方式取决于平台：Linux 和 macOS 可以用安装脚本，Windows 及其他情况需要从 Releases 页面取安装包或二进制。用 Rust 构建组件需要 rustup，README 还提醒系统里另装一份 Rust 工具链可能让 `rustup target add` 装到错误的副本上，所以工具链布局本身就是准备步骤的一部分。\n\n长期维护的成本更大。运行时暴露了对 CPU 和内存的细粒度控制，意味着你要为实际环境设定合理上限，而不是照单全收默认值。支持版本和稳定性分级另有文档，固定版本并跟进安全策略属于日常维护。不同宿主语言的 API 并不相同，嵌入哪个包就决定了该看哪份文档：Rust crate、C\u002FC++ 头文件，还是 Python、Go、.NET、Ruby 包。\n\n## HotRepo 点评\n\n唯一有日期的榜单信号是 2026-10-25，项目出现在新项目榜，18,761 stars，当天 +9。这只是一条观测，不足以判断趋势；只有一个记录日期时，无法判断关注度能否持续。试用前更值得核对稳定性分级文档：确认你的模块用到的 WebAssembly 提案和 WASI 版本，在你准备嵌入的发布版上处于受支持的分级。\n\n[项目源码与说明](https:\u002F\u002Fgithub.com\u002Fbytecodealliance\u002Fwasmtime)",{"slug":43,"name":44},"developer-tools","开发工具",[46,47,48,49,50,51,52,53,54,55,56,57,58],"aot","cranelift","jit","lightweight","portable","runtime","rust","sandbox","standalone","wasi","wasm","wasmtime","webassembly","Apache-2.0","https:\u002F\u002Fwasmtime.dev\u002F","2026-10-25T11:05:12Z",[63],{"date":64,"stars":11,"stars_gained":13},"2026-10-25",1792967956]