WebAssembly,通过AssemblyScript编写wasm
发布于 作者:苏南大叔 来源:程序如此灵动~

对于苏南大叔来说,这个可以在网页里面运行的webassembly
技术,就是对JavaScript
进行代码加密隐藏的新技术。所以,对它展开探索。根据官方文档,这个.wasm
文件是个编译后的结果,编译之前各个主流编程语言都可以对它有所支持。这个就更令人有选择困难症了。

苏南大叔的“程序如此灵动”博客,记录苏南大叔的代码编程经验总结。测试环境:win10
,node@20.18.0
,AssemblyScript@0.27.31
。先说一下本文的结论,并不建议使用AssemblyScript
编写,实在是功能有限。
AssemblyScript
AssemblyScript
是一种将TypeScript
编译为WebAssembly
的编程语言。官方网站:

在众多支持编译为WebAssembly
的各种语言里面,苏南大叔选择了这个AssemblyScript
,因为它宣称是typescript
的子集,使用typescript
的语法。
AssemblyScript 范例
首先,创建一个新的项目文件夹并初始化 npm 项目:
npx asinit .
命令会在当前目录下生成一些初始文件和文件夹,包括 assembly/
文件夹和 asconfig.json
配置文件。

最简单例子
在 assembly/index.ts
文件里,自带个加法运算的例子。修改index.ts
代码,就可以导出自己的算法了。使用export
来导出即可,可以导出多个函数:
编译 AssemblyScript 代码
可以执行:
如果目标明确,只需要wasm
文件的话,也可以执行:
这个AssemblyScript
的输出.wasm
文件,构建的命令参数,经常变化。所以,不能盲目的照抄网上教程里面的命令。因为很有可能已经失效了,不能正常构建。
引入wasm文件
build
下面的release.js
文件,也是有参考意义的。
index.html
的源码:
参考文章:
运行wasm
范例里面自带个serve
,否则的话,就需要nginx
之类的容器进行启动。

结论
不建议使用AssemblyScript
。所以,继续选择其它的编程语言。不建议使用的原因,是目前只要函数里面出现字符串,就会发生各种各样的问题。虽然可以解决,但是作为一门编程语言来说,这匪夷所思啊。所以,在目前来看,不建议使用。具体可以参考后续文章。


