Ответ
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-приложений и т.д.
Ответ 18+ 🔞
Да ты послушай, что эти умники придумали, блядь! WebAssembly, или попросту Wasm — это типа бинарный формат, который в браузере гоняет код с такой скоростью, что мама не горюй, почти как нативное железо! Представь: пишешь ты на C, C++, Rust, да хоть на чёрте лысом, а эта штука превращает это всё в такую дичь, которая в вебе летает.
Чем оно, сука, примечательно:
- В браузере в песочнице тусуется, как JS, но, блядь, в разы шустрее — небо и земля!
- Все современные браузеры его уже заглотили, проблем нет.
- С 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-системы — в общем, там, где обычный JS бы просто лёг и умер, блядь. Ёперный театр, вот что!