跳转到内容
搜索文档

WebAssembly (Wasm)

最后更新 查看 MarkdownAgent 设置

WebAssembly(简称 Wasm)允许你将 Rust、Go 或 C 等语言编译为可在多种环境中运行的二进制格式,包括 Web 浏览器、Cloudflare Workers 以及其他 WebAssembly 运行时。

你可以使用 WebAssembly 来:

  • 通过 WebAssembly.instantiate() 运行 JavaScript 以外的语言编写的代码。

  • 使用 Rust 编写完整的 Cloudflare Worker,通过绑定直接从 Rust 代码访问 Workers 的 JavaScript API。

大多数编程语言都可以编译为 Wasm,但不同语言和编译器的支持程度各不相同。以下语言提供了指南:

支持的提案

WebAssembly 是一套快速演进的标准,许多 API 提案 处于不同的开发阶段。总体而言,Workers 支持与 Google Chrome 中可用功能相同的特性集。

SIMD

Workers 支持 SIMD。有关在 WebAssembly 中使用 SIMD 的更多信息,请参阅 Fast, parallel applications with WebAssembly SIMD

线程

Workers 中不支持线程。每个 Worker 在单个线程中运行,且不支持 Web Worker API。

二进制大小

编译为 WebAssembly 通常需要包含额外的运行时依赖。因此,使用 WebAssembly 的 Worker 通常比等效的 JavaScript Worker 更大。Worker 越大,启动时间可能越长。有关更多信息,请参阅 Worker 启动时间。建议使用 wasm-opt 等工具优化 Wasm 二进制文件的大小。

WebAssembly System Interface (WASI)

WebAssembly System Interface(简称 WASI)是 WebAssembly 的模块化系统接口,标准化了一组用于网络、文件系统访问等的底层系统调用。应用程序可以依赖 WebAssembly System Interface,在不同主机环境和操作系统上表现一致。

WASI 是比 Wasm 更早且演进更快的标准集。WASI 在 Cloudflare Workers 上处于实验性支持阶段,仅实现了部分系统调用。请参阅我们的 WASI 开源实现,以及演示其用法的 Workers 上的 WASI 博客文章

WebAssembly 相关资源

这篇文档对您有帮助吗?