1

我正在努力让 webpack 使用一组使用 wasm-bindgen 编译的WebAssembly 文件。

即使这可能只是 webpack 的一个问题,它也让我意识到我没有完全理解这些古怪的 WebAssembly 工具之间的区别。

4

1 回答 1

5

使用 wasm-bindgen 和 Emscripten 编译的 WebAssembly 模块

这没有意义。您完全混合了所有内容,并且您链接的问题不应该应用于您的问题。wasm-bindgen 和 Emscripten 之间没有关系。

首先,asm.js是在浏览器中运行 C/C++(或 Rust)代码的第一次尝试,被认为是 WebAssembly 的先驱。它是 C/C++ 代码可以编译成的 JS 子集。asm.js 编译的 C/C++ 代码可以在任何浏览器中运行,因为它是 JS,并且在许多浏览器中性能更高,因为它是 JS 的高度优化子集。然而,asm.js通常不如 WebAssembly 性能好。

对于其他人,简而言之:

  • Emscripten是一个用于 WebAssembly/asm.js的C/C++编译器工具链。
  • wasm-bindgen是一个Rust绑定器生成器,用于与 JS 代码交互。
于 2019-04-24T16:59:28.487 回答