INTEGRITY Документация

WebAssembly (Wasm)

WebAssembly (сокращённо Wasm) позволяет компилировать код на таких языках, как Rust, Go или C в бинарный формат, который может выполняться в самых разных средах, включая веб-браузеры, Cloudflare Workers и других сред выполнения WebAssembly.

WebAssembly можно использовать для:

Большинство языков программирования можно скомпилировать в Wasm, хотя уровень поддержки различается в зависимости от языка и компилятора. Руководства доступны для следующих языков:

Поддерживаемые предложения

WebAssembly представляет собой быстро развивающийся набор стандартов, многие предложенные API которые находятся на разных стадиях разработки. В целом Workers поддерживает тот же набор функций, что доступен в Google Chrome.

SIMD

Workers поддерживают SIMD. Дополнительную информацию об использовании SIMD в WebAssembly см. в Быстрые параллельные приложения с WebAssembly SIMD.

Многопоточность

Многопоточность в Workers невозможна. Каждый Worker выполняется в одном потоке, и Web Worker API не поддерживается.

Размер двоичного файла

Компиляция в WebAssembly часто требует включения дополнительных зависимостей времени выполнения. Из-за этого Workers, использующие WebAssembly, обычно крупнее эквивалентного Worker, написанного на JavaScript. Чем крупнее ваш Worker, тем дольше может занимать его запуск. См. Время запуска Worker для дополнительной информации. Рекомендуем использовать такие инструменты, как wasm-opt чтобы оптимизировать размер вашего двоичного файла Wasm.

WebAssembly System Interface (WASI)

WebAssembly System Interface (сокращённо WASI): модульный системный интерфейс для WebAssembly, который стандартизирует набор базовых системных вызовов для работы с сетью, файловой системой и другими ресурсами. Приложения могут полагаться на WebAssembly System Interface, чтобы вести себя одинаково в разных средах хостинга и операционных системах.

WASI представляет собой более ранний и быстрее развивающийся набор стандартов, чем Wasm. Поддержка WASI в Cloudflare Workers экспериментальна: реализованы лишь некоторые системные вызовы. См. наш реализация WASI с открытым исходным кодом, а также статья в блоге о WASI в Workers демонстрирующий его использование.

Материалы о WebAssembly