问题描述
我可以从我的 AssemblyScript 代码中导入 .wasm 文件吗?我知道我可以使用 AssemblyScript 加载器从 TypeScript 加载 .wasm 文件,但是如果我按照 https://www.assemblyscript.org/loader.html
上的说明尝试构建我的 AssemblyScript 示例,我会收到错误长话短说,我有一个已编译为 WASM 的 Rust 库。我想在我的 AssemblyScript 示例中使用该代码。这可能吗?
解决方法
据我所知,目前没有工具可以静态链接来自不同语言的两个 wasm 二进制文件。
这很困难,原因有几个:AS 模块在设计时没有考虑重定位(也就是说你不能间接引用导入),另一个是目前没有由 Wasm 提供的分配,每个二进制文件通常都打包自己的内部分配器。这意味着如果没有协调,两个分配器不知道可用内存的状态,并且可能会相互覆盖。
听起来您的用例在浏览器中,但如果您不是,wasmtime 现在具有动态链接,这对于执行您想要的操作很有用。 See here for an example,all be it a simple one that doesn't have the allocator issue mentioned above