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

Releases: wasmCloud/wascc-host

Release v0.14.0

21 Oct 16:57
Compare
Choose a tag to compare
Release v0.14.0 Pre-release
Pre-release

This version corresponds to the project milestone 0.14

Added

  • Host runtime will now look at the OCI_REGISTRY_USER and OCI_REGISTRY_PASSWORD environment variables whenever it needs to contact an OCI registry.
  • Added the add_native_capability_from_registry to download and load an OS/CPU arch appropriate provider plugin.

Changed

  • All non-local references to capability providers and actors are now assumed to be registry references that can be satisfied by the indicated OCI registry. If basic authentication is required by that registry, then you can supply those credentials via the OCI_REGISTRY_USER and OCI_REGISTRY_PASSWORD environment variables.
  • The add_actor_from_gantry function has been renamed to add_actor_from_registry
  • Manifest files will now load either actors (if the actor string exists as a file) or registry-hosted modules (if the actor string is a registry reference)

Caution

The ability to remotely schedule capability providers in this version should be considered unstable, to be
stabilized in the 0.15.0 release (the "async rewrite"), which will include a rework of how capability providers
internally subscribe to the message bus and identify themselves to the host and lattice.

Release v0.13.0-1

25 Sep 17:52
Compare
Choose a tag to compare
Release v0.13.0-1 Pre-release
Pre-release

This version corresponds to the project milestone 0.13

Added

  • Lattice Control Plane Protocol - A new protocol is now supported on the lattice to allow for "auctions" to take place to gather a list of hosts willing to launch a given actor. An auction request is sent out with a set of constraints, any host that can satisfy those contraints responds affirmatively to the auction, and then the conductor of the auction chooses from among the responding hosts and sends a command to that specific host telling it to launch the actor in question. Launching that actor is then done by downloading the actor's bytes from a Gantry server and running it. You can specify a set of key/value pairs that define constraints that are matched against host labels to definite affinity-style scheduling rules.
  • Sim Gantry - The gantry repo now has a "sim gantry" binary that developers can use to instantly start a Gantry host atop an arbitrary directory that contains signed actor modules.
  • Lattice-Scoped Bindings - In lattice mode, calling set_binding will tell all running instances of a given capability provider to provision resources for the given actor+configuration. If a capability provider is added to a completely empty host, it will re-establish its bindings (including provisioning resources) by querying the lattice. If all instances of that provider are shut down, then the lattice will "forget" those bindings. Actors can be added and removed without the need to re-bind them to their capability providers.
  • There is now a remove_binding function on the Host struct that will tell all running instances of a given capability provider to de-provision resources for a given actor group.
  • waPC now supports the choice of multiple underlying WebAssembly engines or drivers, so waSCC host now supports them through the use of feature flags. You can now choose your engine between wasmtime (the default) and wasm3. For more information on the difference, please see the driver repository in the waPC Github organization.

Changed

  • The bind_actor function has been renamed to set_binding to better provide context around the distributed, idempotent nature of bindings.
  • You can no longer invoke configure_gantry on a running host. The gantry client can only be supplied by the host builder now, further improving the runtime security and reliability of the host.
  • The gantry feature has been merged with the lattice feature. Gantry (client) support is no longer an isolated opt-in feature because both require the NATS connection in order to function and it didn't make sense to communicate with Gantry while not having the ability to connect to a lattice.
  • Renamed from_bytes on the Actor struct to from_slice, and it now takes a &[u8] parameter instead of an owned vector.
  • Loading an actor from gantry via the host API call now requires a revision number (0 indicates pull the latest)
  • The Gantry client API to download an actor no longer requires a callback, it simply returns a vector of bytes.

Removed

  • You can no longer call set_label on a running host. Labels must be set with a HostBuilder

Release v0.12.0

01 Sep 16:54
Compare
Choose a tag to compare
Release v0.12.0 Pre-release
Pre-release

For a complete list of details on this release, consult the CHANGELOG file.

This release has 3 binaries associated with it that were build with the gantry manifest and lattice features enabled--features most likely to be required for running demos, tutorials, walkthroughs, and examples.

Pay no attention to the -11 suffix on the release tag - that is purely an artifact of us attempting to iterate over automatic CI builds.

v0.10.0

09 Jul 13:09
Compare
Choose a tag to compare
v0.10.0 Pre-release
Pre-release

In this release we added a lot of new functionality to the lattice feature, improved the middleware system by allowing it to short-circuit or stop a middleware execution chain, and took care of a few minor issues.

For the full details on this release please consult the CHANGELOG file.

v0.9.0

17 Jun 13:16
0ea8735
Compare
Choose a tag to compare
v0.9.0 Pre-release
Pre-release

In this release we added support for lattice mode, a way of seamlessly connecting distributed waSCC hosts with each other no matter where they are. Lattice mode allows actors and capability providers to discover and bind across any number of intervening networks.

For more information on lattice mode and how to use it, check out the Lattice documentation.

Each of the ZIP files below contains the regular version of wascc-host as well as the lattice-enabled version.

v0.8.0

08 Jun 13:18
Compare
Choose a tag to compare
v0.8.0 Pre-release
Pre-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.

v0.7.0

23 Apr 13:08
63237ec
Compare
Choose a tag to compare
v0.7.0 Pre-release
Pre-release

This release adds no major new features. Instead, a number of refactors were done in dependencies as well as the main library. Actor execution latency may be somewhat faster now because of an upgraded dependency on waPC.

All global static variables have been removed and are now private fields on the WasccHost struct. In addition to being cleaner code, this may reduce friction for those trying to write concurrent integration tests against WasccHost.

The only breaking change is the Actor::from_gantry method has been removed. Actors should be freestanding instances that don't require the use of the gantry feature. Now, there is an add_actor_from_gantry method on WasccHost that replaces the old function (if the gantry feature is enabled).

v0.6.0

06 Apr 18:57
690d76a
Compare
Choose a tag to compare
v0.6.0 Pre-release
Pre-release

See the release notes from the official waSCC.dev website.

v0.4.0

03 Mar 14:04
Compare
Choose a tag to compare
v0.4.0 Pre-release
Pre-release

Aside from a few minor improvements, this release is comprised mostly of a change to take the latest version of waPC, which now contains a separate namespace field in the host_call function. That version of waPC also uses the latest version of wasmtime, and so waSCC now, transitively, uses the latest version of wasmtime.

v0.3.0

18 Feb 13:55
Compare
Choose a tag to compare
v0.3.0 Pre-release
Pre-release

Release notes for v0.3.0 can be found on the waSCC dev site