Что такое WebAssembly

Ответ

WebAssembly (Wasm) — это бинарный формат кода, выполняемый в браузере с почти нативной скоростью. Позволяет запускать код, написанный на C, C++, Rust и других языках, в веб-среде.

Особенности:

  • Работает в песочнице браузера, как JavaScript, но быстрее
  • Поддерживается всеми современными браузерами
  • Может взаимодействовать с JS через API

Пример использования (C → Wasm):

// hello.c
int add(int a, int b) {
    return a + b;
}

Компиляция:

emcc hello.c -o hello.wasm -s WASM=1

Вызов из JS:

WebAssembly.instantiateStreaming(fetch('hello.wasm'))
  .then(obj => {
    console.log(obj.instance.exports.add(2, 3)); // 5
  });

Используется для сложных вычислений, игр, CAD-приложений и т.д.