WebAssembly 指南

《WebAssembly 指南》涵盖了诸如高级概念、从不同语言编译、Wasm 二进制格式的文本表示以及如何运行 WebAssembly 等主题。

将新的 C/C++ 模块编译为 WebAssembly

当您使用 C/C++ 等语言编写了新的代码模块后,可以使用 Emscripten 等工具将其编译为 WebAssembly。让我们来看看它是如何工作的。

将现有 C 模块编译为 WebAssembly

WebAssembly 的一个核心用例是利用现有的 C 库生态系统,并允许开发者在 Web 上使用它们。

从 Rust 编译到 WebAssembly

如果您有一些 Rust 代码,可以将其编译为 WebAssembly (Wasm)。本教程将向您展示如何将 Rust 项目编译为 WebAssembly,并在现有 Web 应用中使用它。

将 WebAssembly 文本格式转换为二进制

WebAssembly 具有一种基于 S 表达式的文本表示形式,这是一种旨在在文本编辑器、浏览器开发者工具等环境中显示的中介形式。本文档将简要介绍它的工作原理,以及如何使用可用工具将文本格式文件转换为 Wasm 格式。

导出的 WebAssembly 函数

导出的 WebAssembly 函数是 WebAssembly 函数在 JavaScript 中的表示方式。本文档将更详细地描述它们。

加载并运行 WebAssembly 代码

要在 JavaScript 中使用 WebAssembly,您首先需要将模块加载到内存中,然后才能进行编译/实例化。本文档提供了用于获取 WebAssembly 字节码的各种机制的参考,以及如何编译/实例化然后运行它。

理解 WebAssembly 文本格式

为了使 WebAssembly 能够被人类阅读和编辑,它提供了一种 Wasm 二进制格式的文本表示。这是一种中介形式,旨在显示在文本编辑器、浏览器开发者工具和其他类似环境中。本文档将从其原始语法方面解释文本格式的工作原理,以及它与所代表的底层字节码以及在 JavaScript 中代表 Wasm 的包装器对象的关系。

使用 WebAssembly JavaScript API

如果您已经 使用 Emscripten 等工具从其他语言编译了模块,或者 自行加载并运行了代码,下一步就是学习如何使用 WebAssembly JavaScript API 的其他功能。本文档将向您传授您需要了解的内容。

WebAssembly 概念

本文档解释了 WebAssembly 工作原理背后的概念,包括其目标、它解决的问题以及它如何在 Web 浏览器JavaScript 引擎中运行。

WebAssembly 导入的全局字符串常量

WebAssembly 导入的全局字符串常量通过消除与传统字符串导入相关的许多样板代码,使在 Wasm 模块中处理 JavaScript 字符串更加容易。

WebAssembly JavaScript 内置函数

WebAssembly JavaScript 内置函数是 JavaScript 操作的 Wasm 等效项,它们提供了一种在 Wasm 模块中使用 JavaScript 功能的方法,而无需导入 JavaScript 粘合代码来在 JavaScript 和 WebAssembly 值以及调用约定之间提供桥梁。

另见