最近用 rust 编写 wasm,并且在 nodejs 中加载 wasm 处理一些业务需求,但是网上看了下一些教程,感觉相对散乱,这边做个整理,备用。
第一,要安装 rust 和编译 wasm 的环境,主要有 3 个东西
- rust 工具链(rustup,rustc,cargo)运行 rust 的环境,
- wasm-pack 一个构建、测试和发布 WASM 的 Rust CLI 工具,这个主要就是把 rust 编译成 wasm 的工具
- npm、node 这个就是 node 环境了
接下来我们可以使用 wasm-pack 的命令,来进行一个模板的创建,这里我们使用默认的模板。
wasm-pack new myproject
然后就可以使用 IDE 打开这个工程,如果你用 VSCode 你可以去插件商店搜 rust 的插件支持,列如 rust-analyzer。
打开后大致是这么一个目录结构

这个模板会把默认需要的 crate(rust 的库叫 crate,和 nodejs 的 node_module 类似) 和默认的目录结构设置好,我们可以直接使用命令进行编译,由于我们需要的是 nodejs,所以 target 设置为 nodejs,如果是要打包在 web 上加载页可以设置为 web
wasm-pack build --target nodejs
开始编译会自动下载所依赖的 crate,编译完成会在同级目录生成 pkg 文件夹,这个文件夹就是 npm 的模块,名字默认为配置的工程的名字,里面包含了我们需要的 wasm 文件,声明文件(.d.ts)和一些减少适配的 js 文件,我们在 nodejs 中,直接 require 这个 module 即可

到这里,就可以把整个流程跑起来了。后续就是如何在 rust 中填充代码,来实现我们需要的功能了。
如果你对这个行业充满兴趣,那么请关注我,我将为大家分享程序界的各种知识、八卦趣闻等,没有门槛,只要你有兴趣。
© 版权声明
文章版权归作者所有,未经允许请勿转载。如内容涉嫌侵权,请在本页底部进入<联系我们>进行举报投诉!
THE END















暂无评论内容