像 typescript
一样来编写 wasm
程序。AssemblyScript 官网文档
装置
mkdir asm-demo && cd asm-demo
npm init
npm install --save @assemblyscript/loader
npm install --save-dev assemblyscript
初始化
npx asinit .
asm
代码在 assembly/
文件夹中。
AssemblyScript 能力
对 wasm 的反对状况
JSON 的解决方案
RegExp 的解决方案
Date 的解决方案
Compiler
--target 指定打包时所用的配置。默认 release. 产生的 wasm 会多一些全局变量。--optimize, -O 优化。在包大小和打包速度上进行优化。--outFile, -o [path] 输入。--textFile, -t [path] 仅输入 wat 格式文件。
反对 asconfig.json
配置文件。
浏览器环境也能够应用 asm sdk
。
require(["https://cdn.jsdelivr.net/npm/assemblyscript@latest/dist/sdk"],
function(sdk) {const { asc} = sdk;
asc.ready.then(() => {asc.main(...);
});
}
);
查看更多
应用 loader
通过 loader
加载 wasm
并实例化。
import loader from "@assemblyscript/loader"; // or require
loader.instantiate(
// Binary to instantiate
fetch("optimized.wasm"), // or fs.readFileSync
// or fs.promises.readFile
// or just a buffer
// Additional imports
{...}
).then(({exports}) => {...})