此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in English Always switch to English

WebAssembly 指南

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

WebAssembly 概念

本文阐述了 WebAssembly 如何工作这一主题,包括它的目标、它所解决的问题,以及它是如何在 Web 浏览器的 JavaScript 引擎中运行的。

使用 WebAssembly JavaScript API

如果你已经使用 Emscripten 等工具编译了另一种语言的模块,或者自行加载并运行代码,那么下一步是了解如何使用 WebAssembly JavaScript API 的其他特性。这篇文章告诉你你需要知道什么。

加载和运行 WebAssembly 代码

为了在 JavaScript 中使用 WebAssembly,在编译/实例化之前,你首先需要把模块放入内存。本文提供了一篇关于获取 WebAssembly 字节码的不同机制以及如何编译/实例化并运行它的参考。

导出的 WebAssembly 函数

导出 WebAssembly 函数的过程,其实就是指这些函数在 JavaScript 中如何用表示。本文更详细的介绍它们。

将 WebAssembly 文本格式转换为 wasm

WebAssembly 有一个基于 S-表达式的文本表示形式,设计为在文本编辑器,浏览器开发人员工具等中暴露的一个中间形式。本文解释了它是如何工作的一些内容以及如何使用可用的工具把文本格式文件转换为.wasm 汇编格式文件。

理解 WebAssembly 文本格式

为了能够让人类阅读和编辑 WebAssembly,wasm 二进制格式提供了相应的文本表示。这是一种用来在文本编辑器、浏览器开发者工具等工具中显示的中间形式。本文用基本语法的方式解释了这种文本表示是如何工作的,以及它是如何与它表示的底层字节码,及在 JavaScript 中表示 wasm 的封装对象关联起来的。 本质上,这种文本形式更类似于处理器的汇编指令。

编译 C/C++ 为 WebAssembly

当你在用 C/C++ 之类的语言编写模块时,你可以使用 Emscripten 来将它编译到 WebAssembly。让我们来看看它是如何工作的。

编译 Rust 为 WebAssembly

如果你写了一些 Rust 代码,你可以把它编译成 WebAssembly!这份教程将带你编译 Rust 项目为 wasm 并在一个现存的 web 应用中使用它。

参见