@wapc/as-guest
TypeScript icon, indicating that this package has built-in type declarations

0.3.1 • Public • Published

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.

Example

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

import {
  register,
  handleCall,
  hostCall,
  handleAbort,
  Result,
} from "../assembly";

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

// This must be present in the entry file. Do not remove.

export function __guest_call(operation_size: usize, payload_size: usize): bool {
  return handleCall(operation_size, payload_size);
}

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

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 0.3.1
    2
    • latest

Version History

  • Version
    Downloads (Last 7 Days)
    • Published
  • 0.3.1
    2
  • 0.3.0
    1
  • 0.2.1
    4

Package Sidebar

Install

npm i @wapc/as-guest

Weekly Downloads

6

Version

0.3.1

License

Apache-2.0

Unpacked Size

19.1 kB

Total Files

9

Last publish

Collaborators

  • pkedy
  • jsoverson
  • wapcbot