Каковы различия между wasm-bindgen, asm.js и Emcripten? - PullRequest
1 голос
/ 24 апреля 2019

Я пытаюсь заставить веб-пакет работать с набором файлов WebAssembly , скомпилированных с использованием wasm-bindgen.

Даже если это может быть просто проблема с веб-пакетом, это дало мне понять, что я не до конца понимаю различия между этими причудливыми инструментами WebAssembly.

1 Ответ

2 голосов
/ 24 апреля 2019

Модуль WebAssembly, скомпилированный с использованием wasm-bindgen и Emscripten

Это не имеет смысла.Вы полностью смешиваете все, и проблема, которую вы связали, не должна применяться к вашей проблеме.Нет никакой связи между wasm-bindgen и Emscripten.

Во-первых, asm.js была первой попыткой запустить код C / C ++ (или Rust) в браузере и считается предшественникомв WebAssembly.Это подмножество JS, к которому может быть скомпилирован код C / C ++.Скомпилированный в asm.js код C / C ++ может выполняться в любом браузере, потому что это JS, и будет более производительным во многих браузерах, потому что это высокооптимизированное подмножество JS.Однако asm.js обычно менее производителен, чем WebAssembly.

Для остальных, коротко:

  • Emscripten - это C / C ++ цепочка инструментов компилятора для WebAssembly / asm.js.
  • wasm-bindgen - генератор связующих Rust для взаимодействия с кодом JS.
...