使用vite webassembly 功能简化tinygo webassembly 初始化
vite 对于webassembly 的加载支持url 模式以及init 模式,init 模式可以自动帮助我们生成wasm文件加载的处理代码
比较方便,可以用来替换自己编写的工具类,以下是一个参考使用
参考使用
- index.js
import init from './main.wasm?init'
const go = new Go(); // Defined in wasm_exec.js. Don't forget to add this in your index.html.
const runWasmAdd = async () => {
// Get the importObject from the go instance.
const importObject = go.importObject;
// Instantiate our wasm module, 同时可以传递依赖的importObject
const wasmModule = await init(importObject);
console.log(wasmModule)
// Allow the wasm_exec go instance, bootstrap and execute our wasm module
go.run(wasmModule);
// Call the Add function export from wasm, save the result
const addResult = wasmModule.exports.add(2433, 24);
const printName = wasmModule.exports.printName();
// Set the result onto the body
document.body.textContent = `Hello World! addResult: ${addResult} -- printName: ${printName}`;
};
runWasmAdd();
说明
完整代码已经放到github 了,可以参考
参考资料
https://vitejs.dev/guide/features.html#webassembly
https://developer.mozilla.org/en-US/docs/WebAssembly/JavaScript_interface/instantiate
https://github.com/rongfengliang/tinygo-wasm-learning/blob/v2/index.js
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
2022-11-01 backstage 面向开发者门户框架再次简单试用
2022-11-01 graylog 索引数据查询处理简单说明
2022-11-01 新版本nexus minio 集成测试
2020-11-01 duckdb 嵌入式的olap数据库
2020-11-01 trivy 容器安全扫描工具
2020-11-01 Materialize under the Hood
2020-11-01 materialize 参考架构