#wasm-module #wapc #sdk #waxosuit #api-bindings

wapc-guest

构建符合 waPC 规范的 WebAssembly 模块的 Guest SDK

11 个版本 (3 个稳定版)

1.1.0 2023年3月23日
1.0.0 2022年2月10日
0.4.0 2020年10月15日
0.3.1 2020年4月14日
0.1.1 2019年9月19日

#292 in WebAssembly

Download history 594/week @ 2024-04-04 804/week @ 2024-04-11 702/week @ 2024-04-18 510/week @ 2024-04-25 1105/week @ 2024-05-02 1075/week @ 2024-05-09 1566/week @ 2024-05-16 682/week @ 2024-05-23 1618/week @ 2024-05-30 665/week @ 2024-06-06 888/week @ 2024-06-13 1243/week @ 2024-06-20 908/week @ 2024-06-27 716/week @ 2024-07-04 547/week @ 2024-07-11 773/week @ 2024-07-18

每月 3,005 次下载
用于 21 个 crate(18 个直接使用)

Apache-2.0

12KB
228 代码行

waPC Guest SDK

crates.io license

wapc-guest 库是 waPC WebAssembly 协议客户端实现。 wapc-guest 为 Rust 开发者提供了编译可在 waPC 主机中加载的 WebAssembly 模块的必要组件。每个客户端模块使用 [register_function()] 注册函数处理器。每个处理器应返回一个 [CallResult](一个 Result<Vec<u8>,Box<dyn Error + Sync + Send>>),其中包含函数的返回值。

它通常用于由 wapc CLI 生成的代码。

示例

use wapc_guest as wapc;

#[no_mangle]
pub fn wapc_init() {
  wapc::register_function("ping", ping);
}

fn ping(msg: &[u8]) -> wapc::CallResult {
  wapc::console_log(&format!(
    "IN_WASM: Received request for `ping` operation with payload : {}",
    std::str::from_utf8(msg).unwrap()
  ));
  let _res = wapc::host_call("binding", "sample:namespace", "pong", msg)?;
  Ok(msg.to_vec())
}

构建

此 crate 旨在用于针对 wasm32-unknown-unknownwasm32-wasi 的项目。

依赖项

~0.4–5.5MB
~15K SLoC