15 个不稳定版本 (5 个破坏性更新)
0.6.0 | 2020 年 8 月 30 日 |
---|---|
0.5.0 | 2020 年 2 月 7 日 |
0.4.5 | 2019 年 11 月 19 日 |
0.3.3 | 2019 年 11 月 7 日 |
0.1.2 | 2019 年 10 月 30 日 |
#788 在 WebAssembly 中
每月 30 次下载
485KB
1K SLoC
创建和打包基于 WASM WASI 的浏览器服务工作者的工具
此工具为使用 wasi-worker 库构建的浏览器服务工作者提供 JavaScript 代码。
安装
注意:wasi-worker-cli 0.5+ 需要 rustc 1.41+,因为它现在基于 wasi-snapshot-preview1
cargo install wasi-worker-cli
使用
% wasiworker help
wasi-worker-cli 0.2.0
Install JavaScript glue code and WASI toolset for WASI worker to function.
USAGE:
wasiworker <SUBCOMMAND>
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
SUBCOMMANDS:
deploy Executes `cargo build --bin worker` and deploys with glue code under ./dist
help Prints this message or the help of the given subcommand(s)
install Install static files and worker.rs template in current crate
- 在当前目录是工具包根目录的情况下安装 wasiworker 模板
wasiworker install
它将创建 bin/worker.rs
并将相关目标和依赖项放入当前的 Cargo.toml
。如果未找到 Cargo.toml,则将引发恐慌。
- 在 ./dist 下构建和部署
worker
以及所有依赖项
wasiworker deploy
它将运行 cargo build --release --target wasm32-wasi --bin worker
,将生成的 worker.wasm 复制到 ./dist 并将 JavaScript 代码复制到 ./dist/worker.js。它还将添加 wasm_transformer 以能够在浏览器中运行。
注意:目前它使用 wasm-gc 工具显著减小生成的 wasm 文件大小。
- 考虑将
cargo wasi
子命令转换为
构建/修改
代码结构
- src/main.rs - 是 CLI,编译时将 dist 代码嵌入到生成的二进制文件中
- js/* 是 JavaScript 包的源代码,它使用 rollup 和 typescript 构建分发文件
- js/dist/* 是使用生产设置构建的最新粘合代码分发文件
手动从工具包中安装 CLI 包
cargo install --path . --force
它还将嵌入放置在 ./dist 子目录下的任何版本的 JS 粘合代码。
为开发构建 JS 粘合代码
cd js
npm install
npm run build:dev
为分发构建 JS 粘合代码
cd js
npm install
npm run build
致谢
JavaScript粘合代码基于以下优秀的包构建。感谢https://wasmer.io/为让WASI易于使用做出的出色工作。
待办事项
- 命令行界面
- JavaScript粘合包
- 将JavaScript dist嵌入到包中
- 文档
- Cargo构建脚本,用于打包和安装发布或调试版本,包括构建js依赖项
- 添加wasm-gc以优化生成的wasm大小
- 命令行安装
- 命令行安装允许自定义工作器名称
- 命令行部署仅发布
- 命令行部署可以编译为调试版本
依赖项
~6MB
~107K SLoC