由于stdweb已经好久没有更新了,本人又写了另外一篇:JiaYe:用Rust语言开发微信小程序:wasm-bindgenzhuanlan.zhihu.com
stdweb可以轻松将Rust代码编译为JavaScript和Webassembly字节码,本例中使用asmjs-unknown-emscripten作为编译目标。
stdwebcrates.io首先要安装一些必要的工具:
1、Rust 程序设计语言
2、微信开发者工具:下载 · 小程序
3、Node.js (nodejs执行编译后修改js代码,如果手动修改可以不用)
4、(重要)微信小程序目前只有真机调试支持Webassembly,其他时候在手机运行是不支持wasm的,本人开发的两个小程序,都是使用asmjs-unknown-emscripten目标编译的,这就需要先安装配置emscripten,安装教程在此:
Main - Emscripten 1.38.21 documentationkripken.github.iorustup添加编译目标:
rustup
创建小程序项目
编写Rust代码:
Cargo.toml
[package]
name = "testmini"
version = "0.1.0"
authors = ["planet0104 <planet0104@gmail.com>"][dependencies]
stdweb="*"
main.rs:
#[macro_use]
编写build脚本
replace.js:
var
build.cmd:
cargo
小程序中引用编译好的js文件
编译Rust代码:
文件编译完成自动复制到小程序文件夹,就可以看到运行结果了:
这只是一个简单的Hello World。
将Rust编译成javascript,使得crates.io里的许多开源库都可在js中使用了。我用stdweb+gif开发了一个完整的GIF制作小程序《大头贴动画制作》,已经在微信小程序上线。源码:
planet0104/miniprogram-gifmakergithub.com有兴趣的可以扫描小程序码或二维码试玩:
https://mp.weixin.qq.com/a/~TP5_ekZs0RupWWYY5ytBGQ~~ (二维码自动识别)
2019-01-17更新:
我用Rust开发的另外一个小程序《识字画板》昨天上线了,其中主要的代码逻辑都是用Rust实现的,附上小程序码:
识字画板小程序源码:
planet0104/miniprogram-write-teachergithub.com2019-02-15更新: