12 releases (4 stable)
| 1.2.0 | Nov 26, 2024 |
|---|---|
| 1.1.0 | Mar 23, 2023 |
| 1.0.2 | Jan 17, 2023 |
| 1.0.0 | Feb 10, 2022 |
| 0.1.1 | Sep 19, 2019 |
#760 in WebAssembly
30,025 downloads per month
Used in 22 crates
(18 directly)
12KB
230 lines
waPC Guest SDK
The wapc-guest library is an implementation of the guest-side of the waPC WebAssembly protocol. wapc-guest gives Rust developers the pieces necessary to easily compile WebAssembly modules that you can load in waPC hosts. Each guest module registers function handlers with [register_function()]. Each handler should return a [CallResult] (a Result<Vec<u8>,Box<dyn Error + Sync + Send>>) with the function's return value.
It's typically used by code generated by the wapc CLI.
Example
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())
}
Building
This crate is meant for projects targeting wasm32-unknown-unknown or wasm32-wasip1.
Dependencies
~330–690KB
~14K SLoC