WebAssembly(简称 WASM)是一种在现代浏览器中运行的二进制格式,它允许代码以接近原生的速度在网页上执行。WebAssembly 被设计为一种可移植、高效和安全的编译目标,适合高性能应用场景,例如游戏、图像处理、加密计算等。
- 高性能:WebAssembly 是一种低级字节码,可以被浏览器快速解析和执行,其执行速度接近本地代码。
- 跨语言支持:多种编程语言(如 C/C++、Rust 等)都可以编译成 WebAssembly,使得开发者可以在浏览器中使用非 JavaScript 语言编写高性能代码。
- 安全性:WebAssembly 在沙箱环境中运行,与 JavaScript 一样受到浏览器的安全限制,确保了执行过程中的安全性。
- 与 JavaScript 互操作性:WebAssembly 可以调用 JavaScript 函数,反之亦然,这使得 WebAssembly 和 JavaScript 可以协同工作,发挥各自的优势
WebAssembly 并不是为了替代 JavaScript 而设计的,而是作为 JavaScript 的补充,解决其在某些场景下的性能瓶颈问题。
使用AssemblyScript编写wasm(www.assemblyscript.org/examples.ht…)
1、git clone github.com/AssemblyScr…
cd assemblyscript
npm install
npm link
2、安装assemblyscript包编译器
配置asconfig.json
{
"targets": {
"release": {
"outFile": "src/demo/build/release.wasm",
"textFile": "src/demo/build/release.wat",
"sourceMap": true
}
},
"options": {
"buildings": "esm"
}
}
package.json配置
"scripts": {
"asbuild":"asc ./src/demo/assembly/index.ts --target release"
}
启动编译执行pnpm run asbuild,生成三个文件,可以在js中调用胶水代码暴露出的方法