2

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 }) => {
 ...
})

donggg
203 声望584 粉丝

> github