42 个版本 (3 个稳定版)
新版本 1.0.2 | 2024 年 8 月 21 日 |
---|---|
1.0.1 | 2024 年 8 月 20 日 |
0.0.41 | 2024 年 8 月 14 日 |
0.0.36 | 2024 年 7 月 31 日 |
0.0.7 | 2024 年 2 月 23 日 |
176 在 WebAssembly
每月 2,367 次下载
用于 2 crates
565KB
12K SLoC
golem-wasm-rpc-stubgen
golem-wasm-rpc-stubgen
是一个命令行工具,用于从组件的 WIT 定义中生成 RPC 模块。
生成
Usage: wasm-rpc-stubgen generate [OPTIONS] --source-wit-root <SOURCE_WIT_ROOT> --dest-crate-root <DEST_CRATE_ROOT>
Options:
-s, --source-wit-root <SOURCE_WIT_ROOT>
-d, --dest-crate-root <DEST_CRATE_ROOT>
-w, --world <WORLD>
--stub-crate-version <STUB_CRATE_VERSION> [default: 0.0.1]
--wasm-rpc-path-override <WASM_RPC_PATH_OVERRIDE>
-h, --help Print help
-V, --version Print version
source-wit-root
:通过 RPC 调用的组件 WIT 定义的根目录dest-crate-root
:生成新模块的目标路径world
:在生成的模块中使用的世界名称。如果源根包中只有一个世界,则无需指定。stub-crate-version
:生成的模块的 crate 版本wasm-rpc-path-override
:在生成的模块中使用的wasm-rpc
crate 的路径。如果没有指定,将使用wasm-rpc
的最新版本。
该命令创建一个新 Rust 模块,可以编译使用
cargo component build --release
生成的 WASM 组件实现了与源接口对应的 模块接口,位于目标目录的 wit/_stub.wit
文件中。该 WASM 组件需要与其他组件一起组合,以通过 WASM RPC 调用原始接口。
构建
Usage: wasm-rpc-stubgen build [OPTIONS] --source-wit-root <SOURCE_WIT_ROOT> --dest-wasm <DEST_WASM> --dest-wit-root <DEST_WIT_ROOT>
Options:
-s, --source-wit-root <SOURCE_WIT_ROOT>
--dest-wasm <DEST_WASM>
--dest-wit-root <DEST_WIT_ROOT>
-w, --world <WORLD>
--stub-crate-version <STUB_CRATE_VERSION> [default: 0.0.1]
--wasm-rpc-path-override <WASM_RPC_PATH_OVERRIDE>
-h, --help Print help
-V, --version Print version
source-wit-root
:通过 RPC 调用的组件 WIT 定义的根目录dest-wasm
:要生成的模块 WASM 文件名dest-wit-root
:生成的 WIT 文件应放置的目录名称world
:在生成的模块中使用的世界名称。如果源根包中只有一个世界,则无需指定。stub-crate-version
:生成的模块的 crate 版本wasm-rpc-path-override
:在生成的模块中使用的wasm-rpc
crate 的路径。如果没有指定,将使用wasm-rpc
的最新版本。它需要是 绝对路径。
添加模块 WIT 依赖项
Usage: wasm-rpc-stubgen add-stub-dependency [OPTIONS] --stub-wit-root <STUB_WIT_ROOT> --dest-wit-root <DEST_WIT_ROOT>
Options:
-s, --stub-wit-root <STUB_WIT_ROOT>
-d, --dest-wit-root <DEST_WIT_ROOT>
-o, --overwrite
-u, --update-cargo-toml
-h, --help Print help
-V, --version Print version
该命令将生成的 RPC 模块作为 WIT 依赖项合并到其他组件的 WIT 根中。
stub-wit-root
:由generate
或build
命令生成的 WIT 根dest-wit-root
:要添加模块依赖项的组件的 WIT 根overwrite
:如果检测到会更改目标位置的现有 WIT 文件内容,此命令将不会做任何事情。使用此标志,可以强制覆盖这些文件。update-cargo-toml
:启用更新位于dest-wit-root
父目录中的 Cargo.toml 文件,并包含复制的依赖项。
将存根与调用组件组合
Usage: wasm-rpc-stubgen compose --source-wasm <SOURCE_WASM> --stub-wasm <STUB_WASM> --dest-wasm <DEST_WASM>
Options:
--source-wasm <SOURCE_WASM>
--stub-wasm <STUB_WASM>
--dest-wasm <DEST_WASM>
-h, --help Print help
-V, --version Print version
该命令将调用组件的 WASM(使用生成的存根调用远程工作器)与生成的存根 WASM 组合,输出一个组合的 WASM 文件,不再依赖于存根接口,可以直接使用。
source-wasm
:调用组件的 WASM 文件stub-wasm
:生成的存根的 WASM 文件。可以列出多个存根。dest-wasm
:要生成的组合 WASM 文件名
为工作空间初始化 cargo make 任务
Usage: wasm-rpc-stubgen initialize-workspace [OPTIONS] --targets <TARGETS> --callers <CALLERS>
Options:
--targets <TARGETS>
List of subprojects to be called via RPC
--callers <CALLERS>
List of subprojects using the generated stubs for calling remote workers
--wasm-rpc-path-override <WASM_RPC_PATH_OVERRIDE>
当目标和调用组件都在同一 Cargo 工作空间中时,此命令可以初始化一个 cargo-make
文件,其中包含执行存根生成、WIT 合并和 WASM 组合的依赖任务。
一旦工作空间初始化完成,以下两个命令将可用
cargo make build-flow
cargo make release-build-flow
依赖项
~32–48MB
~787K SLoC