Ответ
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-приложений и т.д.