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 · Rust 包仓库 594/week @ 2024-04-04 · Rust 包仓库 804/week @ 2024-04-11 · Rust 包仓库 702/week @ 2024-04-18 · Rust 包仓库 510/week @ 2024-04-25 · Rust 包仓库 1105/week @ 2024-05-02 · Rust 包仓库 1075/week @ 2024-05-09 · Rust 包仓库 1566/week @ 2024-05-16 · Rust 包仓库 682/week @ 2024-05-23 · Rust 包仓库 1618/week @ 2024-05-30 · Rust 包仓库 665/week @ 2024-06-06 · Rust 包仓库 888/week @ 2024-06-13 · Rust 包仓库 1243/week @ 2024-06-20 · Rust 包仓库 908/week @ 2024-06-27 · Rust 包仓库 716/week @ 2024-07-04 · Rust 包仓库 547/week @ 2024-07-11 · Rust 包仓库 773/week @ 2024-07-18 · Rust 包仓库

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