年轻人的第一个 Rust WebAssembly 项目 for Vue and Cloudflare Workers
npm 包
这里是基于 Rust WebAssembly 编写的 mail-parser npm 包,分别支持 Vue 和 Cloudflare Workers
背景
去年基于 cloudflare 做了个临时邮箱服务,dreamhunter2333/cloudflare_temp_email
尝试了一些 node 生态的 mail 解析库,总有大大小小的问题(mail-parser/postal-mime)
所以想尝试一下 Rust WebAssembly 来解析邮件
开发步骤
开发环境: macOS
跟着官方文档走,Rust and WebAssembly
安装 rustup 和 wasm-pack
bash
brew install rustup-init
rustup-init
cargo install wasm-pack创建项目
源码: mail-parser-wasm
bash
cargo new --lib mail-parser-wasm
cd mail-parser-wasm只需要编写一个 src/lib.rs 文件即可
编译并发布
对于 Vue 项目,直接使用下面命令即可
bash
wasm-pack build --release
# 发布
# wasm-pack publish为 Cloudflare Workers 项目编译
参考下面的命令,在 mail-parser-wasm/worker 目录中,我为 Cloudflare Workers 做了特殊处理
编译 web 版本的产出到 web 目录,然后将除了 json 文件和 gitignore 文件之外的文件拷贝到 worker 目录,此时 worker 目录就是最终的产出,可以在 Cloudflare Workers 项目中直接使用。
bash
wasm-pack build --out-dir web --target web --release
find web/ -type f ! -name '*.json' ! -name '.gitignore' -exec cp {} worker/ \;
# 发布
# pnpm publish worker --no-git-checks