Документация Запланировать пилот

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

Запросите бесплатный пилот

Запланировать пилот