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 126/week @ 2024-05-02 138/week @ 2024-05-09 150/week @ 2024-05-16 56/week @ 2024-05-23 156/week @ 2024-05-30 884/week @ 2024-06-06 659/week @ 2024-06-13 1111/week @ 2024-06-20 398/week @ 2024-06-27 430/week @ 2024-07-04 725/week @ 2024-07-11 255/week @ 2024-07-18 506/week @ 2024-07-25 368/week @ 2024-08-01 839/week @ 2024-08-08 1490/week @ 2024-08-15

每月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