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.
Link
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.