waPC Guest Library for AssemblyScript

Usage no npm install needed!

<script type="module">
  import wapcAsGuest from 'https://cdn.skypack.dev/@wapc/as-guest';


waPC Guest Library for AssemblyScript

This is the AssemblyScript implementation of the waPC standard for WebAssembly guest modules. It allows any waPC-compliant WebAssembly host to invoke to procedures inside a AssemblyScript compiled guest and similarly for the guest to invoke procedures exposed by the host.


The following is a simple example of synchronous, bi-directional procedure calls between a WebAssembly host runtime and the guest module.

import {
} from "wapc";

register("hello", function(payload: ArrayBuffer): ArrayBuffer {
  hostCall("myBinding", "sample", "hello", String.UTF8.encode("Simon"))
  return String.UTF8.encode("Hello")

// This must be present in the entry file.
export function __guest_call(operation_size: usize, payload_size: usize): bool {
  return handleCall(operation_size, payload_size);

// Abort function
function abort(message: string | null, fileName: string | null, lineNumber: u32, columnNumber: u32): void {
  handleAbort(message, fileName, lineNumber, columnNumber)
asc example/hello.ts -b example/hello.wasm --use abort=example/hello/abort --validate --optimize