44 个版本 (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日

#157 in WebAssembly

Download history · Rust 包仓库 126/week @ 2024-05-02 · Rust 包仓库 138/week @ 2024-05-09 · Rust 包仓库 150/week @ 2024-05-16 · Rust 包仓库 56/week @ 2024-05-23 · Rust 包仓库 156/week @ 2024-05-30 · Rust 包仓库 884/week @ 2024-06-06 · Rust 包仓库 659/week @ 2024-06-13 · Rust 包仓库 1111/week @ 2024-06-20 · Rust 包仓库 398/week @ 2024-06-27 · Rust 包仓库 430/week @ 2024-07-04 · Rust 包仓库 725/week @ 2024-07-11 · Rust 包仓库 255/week @ 2024-07-18 · Rust 包仓库 506/week @ 2024-07-25 · Rust 包仓库 368/week @ 2024-08-01 · Rust 包仓库 839/week @ 2024-08-08 · Rust 包仓库 1490/week @ 2024-08-15 · Rust 包仓库

每月3,245次下载
用于 8 crates

Apache-2.0

395KB
8K SLoC

golem-wasm-rpc

定义了Golem远程函数调用的数据类型及其之间的转换。

  • WitValue是WIT定义的泛型数据类型,可以表示任意值,由wit-bindgen生成。
  • WitValue提供构建器和提取器API。
  • Value是一个递归的Rust类型,比WitValue更方便使用。在两个方向上实现了WitValueValue之间的转换。
  • 用于描述值和类型的Protobuf消息类型,以及WitValue的protobuf版本,以及从ValueWitValue到它们的转换。
  • WIT值的JSON表示,如Golem文档中定义。
  • Valuewasmtime值的转换。

JSON表示需要额外的类型信息,可以使用golem-wasm-ast crate提取。

主机和存根模式

golem-wasm-rpc crate既可以用于主机环境,也可以用于客户环境。

编译主机版本

cargo build -p wasm-rpc --no-default-features --features host

编译客户版本,具有最小的依赖性和功能集,用于生成的存根。

cargo component build -p wasm-rpc --no-default-features --features stub

功能标志

  • arbitraryValue添加了一个Arbitrary实例。
  • json添加了将WIT值和类型定义映射到/从JSON的转换函数。
  • protobuf添加了protobuf消息类型。
  • wasmtime添加了到wasmtime Val值的转换。
  • host启用所有功能:arbitraryjsonprotobuftypeinfowasmtime
  • stub用于生成的WASM存根,禁用所有功能,并生成客户绑定而不是主机绑定。

依赖关系

~6–26MB
~392K SLoC