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 capability providers.
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 Component custom resource.
To learn more about WebAssembly components, see Components in the wasmCloud documentation.
Config
In Cosmonic Control, "config" refers to configuration data applied to a link. Link configurations may include information such as database connection strings, port numbers, or API access keys.
Configs are defined using the Config custom resource.
Host
A host is a distributed, resilient, highly performant wasmCloud runtime environment that manages components and capability providers. 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.
Interfaces
An interface is a contract for a given capability that establishes the relationship between entities (e.g., components and providers). 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 capability provider). Links inform the host runtime about what functions an entity may invoke on another entity.
Links can be removed and added at any time. A component that was previously linked to one implementation of a capability can change to another implementation or an updated version of that capability provider without requiring a redeploy or a recompile.
Links are defined using the Link custom resource.
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.
Provider
A provider (or capability provider) is a specific implementation of a given capability according to an interface. A given capability (such as key-value storage) may have multiple implementations via different providers—for example, a component using the wasi:keyvalue
interface may link to the Redis provider for
simplicity, a HashiCorp Vault provider for secrets management, or another solution.
Providers are defined using the Provider custom resource.
To learn more about providers, see Providers in the wasmCloud documentation.
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.