Skip to content
This repository was archived by the owner on Nov 5, 2020. It is now read-only.

v0.8.0

Pre-release
Pre-release

Choose a tag to compare

@autodidaddict autodidaddict released this 08 Jun 13:18
· 48 commits to master since this release

All capability providers (including portable WASI providers) are now required to respond to the operation OP_GET_CAPABILITY_DESCRIPTOR and return a messagepack-serialized struct containing metadata about the capability provider. This metadata includes:

  • Name
  • Documentation description
  • Version (semver string) and Revision (monotonic)
  • List of supported operations

We created a simple builder syntax that makes it easy and readable for capability providers to supply a capability descriptor:

/// Obtains the capability provider descriptor
fn get_descriptor(&self) -> Result<Vec<u8>, Box<dyn Error>> {
    Ok(serialize(
        CapabilityDescriptor::builder()
            .id(CAPABILITY_ID)
            .name("Default waSCC HTTP Server Provider (Actix)")
            .long_description("A fast, multi-threaded HTTP server for waSCC actors")
            .version(VERSION)
            .revision(REVISION)
            .with_operation(
                OP_HANDLE_REQUEST,
                OperationDirection::ToActor,
                "Delivers an HTTP request to an actor and expects an HTTP response in return",
            )
            .build(),
    )?)
}

NOTE - This is a breaking change, so old versions of capability providers will not work with this version of the waSCC host.