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.
```rust use wapc_guest as wapc;
pub fn wapcinit() { wapc::registerfunction("ping", ping); }
fn ping(msg: &[u8]) -> wapc::CallResult {
wapc::consolelog(&format!(
"INWASM: Received request for ping
operation with payload : {}",
std::str::fromutf8(msg).unwrap()
));
let _res = wapc::hostcall("binding", "sample:namespace", "pong", msg)?;
Ok(msg.to_vec())
}
```
This crate is meant for projects targeting wasm32-unknown-unknown
or wasm32-wasi
.