WebAssembly
介绍
WebAssembly(wasm) 是一种编码方式,可以在现代的 Web 浏览器中运行。是一种类汇编语言,具有紧凑的二进制格式,可以接近原生的性能运行,并为诸如 C/C++、C# 和 Rust 等语言提供编译目标,以便它们可以在 Web 上运行。也也被设计为可以与 JavaScript 共存,允许两者一起工作。
使用
wasm由C/C++、C# 和 Rust 等语言编译而来。
前端只需要调用对应的文件即可。WebAssembly.instantiateStreaming(source, importObject, compileOptions) 方法用于调用wasm文件。有一些参数如下。
- source:一个 fetch() 调用。
- importObject:可选,包含要导入到新创建的 Instance 的值。
- compileOptions:可选,一个对象,包含编译选项。
实例
以下是一个简单的例子。
wasm文件
1 | // fetch 服务器文件或本地文件路径 |
搭配worker
以下示例将使用 WebAssembly.compileStreaming() 方法编译 simple.wasm 加载后的字节码,并将返回的 Module 实例通过 postMessage() 发送到一个 worker。
1 | const worker = new Worker("wasm_worker.js"); |