乐趣区

关于javascript:通过-AssemblyScript-编写-wasm

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}) => {...})
退出移动版