Skip to main content

Glossary

Cosmonic Control uses a number of terms with distinct meanings or particular nuance in the context of wasmCloud and the WebAssembly ecosystem.

Capability

A capability is an abstraction for a given piece of common, reusable functionality (such as HTTP service or key-value storage). Capabilities are typically defined through interfaces and delivered through host plugins.

To learn more about capabilities, see Capabilities in the wasmCloud documentation.

Component

A component is a WebAssembly binary conforming to the WebAssembly Component Model. Components are:

  • Small and portable, with file sizes ranging from kilobytes to megabytes.
  • Interoperable, able to communicate via language-agnostic interfaces with any other component—regardless of the language in which the other component was written.
  • Composable, so that multiple components can be combined into one.

Components are defined using the WorkloadDeployment custom resource.

To learn more about WebAssembly components, see Components in the wasmCloud documentation.

Host

A host is a distributed, resilient, highly performant wasmCloud runtime environment that manages components and host plugins. Hosts coordinate the scheduling of compute, emit events, manage observability and tracing, and participate in a distributed network.

Hosts are defined using the Host custom resource.

To learn more about wasmCloud hosts, see Hosts in the wasmCloud documentation.

Host Group

A host group is a set of wasmCloud hosts.

Host groups are defined using the HostGroup custom resource.

Host Plugins

Host plugins extend a wasmCloud host with a specific implementation of a given capability according to an interface, and may optionally serve as shared resources, providing functionality to many different components for many different applications.

Some plugins may be built-in to the host, like the HTTP plugin, while others may run externally in containers.

Interfaces

An interface is a contract for a given capability that establishes the relationship between entities (e.g., components and host plugins). Interfaces are expressed in the WebAssembly Interface Type (WIT) interface description language (IDL).

To learn more about interfaces, see Interfaces in the wasmCloud documentation.

A link is a runtime-defined connection between two entities (e.g., a component and a host plugin). Links inform the host runtime about what functions an entity may invoke on another entity.

To learn more about links, see Linking Components in the wasmCloud documentation.

OCI Reference

The Open Container Initiative (OCI) defines a standard by which artifacts can be stored, retrieved, and distributed. This standard is called OCI distribution.

OCI references are URLs that point to such artifacts, e.g. wasmcloud.azurecr.io/echo:0.3.2 is the URL for v0.3.2 of the wasmCloud example echo component.

wasmCloud

wasmCloud is an open source project from the Cloud Native Computing Foundation (CNCF) that enables teams to build polyglot applications composed of reusable Wasm components and run them—resiliently and efficiently—across any cloud, Kubernetes, datacenter, or edge.

WebAssembly (Wasm)

WebAssembly (or Wasm) is a bytecode format paired with a virtual instruction set architecture (vISA) that can serve as a compilation target for any language. From any language that supports the compilation target, you can compile code to a tiny binary that runs on the "tiny virtual machine" of a Wasm runtime, so that the code can run across environments such as servers, edge devices, clouds, and more.

For more information, see WebAssembly.org.

WASI

WASI is an acronym that stands for the "WebAssembly System Interface." WASI is a group of standards-track API specifications for software compiled to Wasm. WASI provides a secure, standardized interface for Wasm applications.

For more information, see WASI.dev.

Component Model

The WebAssembly Component Model is a specification for WebAssembly binaries that has the goal of making it easier for multiple WebAssembly components to interact with one another—regardless of the languages they are written in—using shared types and functions.

For more information, see see Components in the wasmCloud documentation or the documentation for the Component Model.