微信小程序对WXWebAssembly的支持情况实践
这几天一直在调研微信小程序对WebAssembly的支持情况,昨天把我们业务上的wasm文件导入到小程序,一直报错,没有成功。
具体的报错截图如下所示
TypeError: WebAssembly.instantiate(): Impor #0 module="env" error: module is not an object or function
图片占位
图片占位
今天尝试找一些比较简单的demo来导入,
1、首先尝试的是写一个helloworld的打印示例,具体代码如下所示
参考该文档进行安装相关的环境
https://www.cntofu.com/book/150/zh/ch1-quick-guide/ch1-01-install.md
将这个helloworld.wasm文件导入也是报错的
图片占位
第二种尝试是在github上找了个实现加减乘除计算器的wasm文件引入,发现成功了
c文件代码
图片占位
成功导出了下面三个函数,调用add函数也成功返回了1 + 2 = 3的逻辑
图片占位
总结
微信目前确实是支持WebAssembly,但是支持的很有限,引入外部头文件或者外部库都可能存在报错
参考官方教程
https://developers.weixin.qq.com/miniprogram/dev/framework/performance/wasm.html
各大家推荐一个资源 https://wasmbyexample.dev/home.en-us.html
这里的wasm的项目都用cpp,rust,go还有ts四种语言各自写了一遍~
很适合观察各种语言的实现wasm的优缺点~