Web组装

2021-02-28 12:36:30

WebAssembly对Web平台具有巨大的影响-它提供了一种以近乎本机的速度在网络上运行以多种语言编写的代码的方式,而以前在网络上运行的客户端应用程序却没有这样做。

WebAssembly旨在补充JavaScript并与JavaScript一起运行-使用WebAssembly JavaScript API,您可以将WebAssembly模块加载到JavaScript应用程序中并在两者之间共享功能。这样,即使您不知道如何编写WebAssembly代码,也可以在同一应用程序中利用WebAssembly的性能和功能以及JavaScript的表现力和灵活性。

更好的是,W3C WebAssembly工作组和社区组正在将它作为Web标准进行开发,并得到所有主要浏览器供应商的积极参与。

首先阅读WebAssembly背后的高级概念,它是什么,为什么如此有用,如何适合Web平台(以及以后)以及如何使用它。

使用C / C ++编写代码后,您可以使用Emscripten之类的工具将其编译为.wasm。让我们看看它是如何工作的。

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

如果您已经编写了一些Rust代码,则可以将其编译为WebAssembly!本教程将带您了解将Rust项目编译为wasm并将其在现有Web应用程序中使用所需的全部知识。

在拥有.wasm之后,本文将介绍如何将WebAssembly JavaScript API与Fetch或XHR API结合起来进行获取,编译和实例化。

加载.wasm模块后,您将要使用它。在本文中,我们向您展示如何通过WebAssembly JavaScript API使用WebAssembly。

导出的WebAssembly函数是WebAssembly函数的JavaScript反映,可以从JavaScript调用WebAssembly代码。本文介绍了它们是什么。

本文介绍wasm文本格式。这是调试时在浏览器开发人员工具中显示的.wasm模块的低级文本表示形式。

本文提供了有关如何将以文本格式编写的WebAssembly模块转换为.wasm二进制文件的指南。

WebAssembly.Global对象表示一个全局变量实例,可以从JavaScript进行访问,并且可以跨一个或多个WebAssembly.Module实例导入/导出。这允许动态链接多个模块。

WebAssembly.Module对象包含浏览器已经编译的无状态WebAssembly代码,可以与Workers有效共享,并且可以实例化多次。

WebAssembly.Instance对象是Module的有状态可执行实例。 实例对象包含所有Exported WebAssembly函数,这些函数允许从JavaScript调用WebAssembly代码。 WebAssembly.instantiateStreaming()函数是用于编译和实例化WebAssembly代码,返回模块及其第一个实例的主要API。 WebAssembly.Memory对象是可调整大小的ArrayBuffer,它保存由实例访问的内存的原始字节。 WebAssembly.Table对象是由实例访问的可调整大小的不透明值类型化数组,例如函数引用。