WebAssembly Binary
WebAssembly (Wasm) — бинарный формат инструкций для стековой виртуальной машины. Он обеспечивает производительность, близкую к нативной, в веб-браузерах для приложений вроде игр, видеоредакторов, САПР и научных симуляций. Код на C, C++, Rust и Go компилируется в Wasm для портативного выполнения.
MIME-тип
application/wasm
Тип
Бинарный
Сжатие
Без потерь
Преимущества
- + Near-native execution speed in web browsers
- + Compile from C, C++, Rust, Go, and more
- + Sandboxed execution for security
- + Portable — runs in browsers and server-side via WASI
Недостатки
- − No direct DOM access — requires JavaScript interop
- − Debugging is harder than JavaScript
- − Binary format is not human-readable
Когда использовать .WASM
Используйте Wasm для ресурсоёмких веб-приложений, портирования нативного кода в браузеры и бессерверных edge-функций через WASI.
Технические детали
Wasm использует компактный бинарный формат с типизированными функциями, линейной памятью и этапом валидации, обеспечивающим безопасность. Работает в песочнице без прямого доступа к DOM — мосты JavaScript обеспечивают ввод-вывод. WASI расширяет Wasm для серверного использования.
История
W3C выпустил WebAssembly 1.0 в 2017 году — разработку вели Mozilla, Google, Microsoft и Apple. Формат создан как цель компиляции для веба, дополняющая JavaScript детерминированной предсказуемой производительностью.