Skip to content

年轻人的第一个 Rust WebAssembly 项目 for Vue and Cloudflare Workers

npm 包

这里是基于 Rust WebAssembly 编写的 mail-parser npm 包,分别支持 VueCloudflare Workers

背景

去年基于 cloudflare 做了个临时邮箱服务,dreamhunter2333/cloudflare_temp_email

尝试了一些 node 生态的 mail 解析库,总有大大小小的问题(mail-parser/postal-mime)

所以想尝试一下 Rust WebAssembly 来解析邮件

开发步骤

开发环境: macOS

跟着官方文档走,Rust and WebAssembly

安装 rustupwasm-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

最后更新于: