typescript 一样来编写 wasm 程序。AssemblyScript 官网文档

装置

mkdir asm-demo && cd asm-demonpm initnpm install --save @assemblyscript/loadernpm 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 requireloader.instantiate( // Binary to instantiate fetch("optimized.wasm"), // or fs.readFileSync                          // or fs.promises.readFile                          // or just a buffer // Additional imports { ... }).then(({ exports }) => { ...})