【问题标题】:Is it possible to import a .wasm file from AssemblyScript?是否可以从 AssemblyScript 导入 .wasm 文件?
【发布时间】:2026-02-03 20:25:02
【问题描述】:

我可以从我的 AssemblyScript 代码中导入 .wasm 文件吗?我知道我可以使用 AssemblyScript 加载程序从 TypeScript 加载 .wasm 文件,但是如果我按照 https://www.assemblyscript.org/loader.html 上的说明尝试构建我的 AssemblyScript 示例,则会出现错误

长话短说,我有一个已编译为 WASM 的 Rust 库。我想在我的 AssemblyScript 示例中使用该代码。这可能吗?

【问题讨论】:

    标签: webassembly assemblyscript rust-wasm


    【解决方案1】:

    据我所知,目前还没有工具可以静态链接来自不同语言的两个 wasm 二进制文件。

    这很困难有几个原因:AS 模块在设计时没有考虑重定位(即您不能间接引用导入),另一个是目前 Wasm 没有提供分配,每个二进制文件通常都打包自己的内部分配器。这意味着如果没有协调,两个分配器不知道可用内存的状态,并且可能相互覆盖。

    听起来您的用例在浏览器中,但如果您不是,wasmtime 现在有动态链接,这对于做您想做的事情可能很有用。 See here for an example, all be it a simple one that doesn't have the allocator issue mentioned above

    【讨论】:

    • 在这种情况下,我实际上使用的是 Wasmtime。但是,我要做的基本上与您的示例相反(顺便说一句,这很有帮助)。基本上,我有一个已编译为 WASM 的 Rust 库,我想在我的 AssemblyScript 示例中导入并使用它。如果我设法提出一个可行的示例,我一定会回来分享它。
    • 酷!祝你好运,即使你还没有完成,也可以随意分享!