[][src]Crate wascap_guest

wascap-guest

The wascap-guest library provides WebAssembly module developers with access to a wascap-compliant host runtime. Each guest module has a single call handler, declared with the call_handler! macro. Inside this call handler, the guest module should check the operation of the delivered message and handle it accordingly, returning any binary payload in response. It is the responsibility of the guest module to ensure that the capability provider will be able to understand whichever messages it sends.

Example

extern crate wascap_guest as guest;

use guest::prelude::*;

call_handler!(handle_call);

pub fn handle_call(ctx: &CapabilitiesContext, operation: &str, msg: &[u8]) -> CallResult {
    match operation {
        http::OP_HANDLE_REQUEST => hello_world(ctx, msg),
        core::OP_HEALTH_REQUEST => Ok(vec![]),
        _ => Err("bad dispatch".into()),
    }     
}

fn hello_world(
   _ctx: &CapabilitiesContext,
   _msg: &[u8]) -> CallResult {
    Ok(vec![])
}

Re-exports

pub extern crate prost;
pub extern crate wascap_codec;

Modules

kv

Key-Value Store

msg

Message Broker

prelude

Glob imports for common guest module development

raw

Raw capability provider interface

Macros

call_handler

Structs

CapabilitiesContext

The capabilities context is the gateway through which all guest modules communicate with a host runtime. A reference to a capabilities context is passed to the call handler defined by the guest module. Individual capabilities are separated through function calls for each capability provider, including any bound opaque raw providers.

WascapHostRuntimeInterface

The default implementation of the host runtime interface. This is the runtime interface that will be inside the Capabilities Context passed to a guest module's call handler

Constants

HRI

The singleton Host Runtime Interface for doing real, unsafe FFI calls to the runtime host

Traits

HostRuntimeInterface

A trait for a host runtime interface. This abstracts the method of invoking host calls so that the host interface can be mocked for testing

Functions

__console_log
__guest_error
__guest_request
__guest_response
__host_call
__host_error
__host_error_len
__host_response
__host_response_len
protobytes

Utility function to easily convert a prost Message into a byte vector

Type Definitions

Result

Wascap Guest SDK result type