Skip to main content
Version: v2.0.0-rc.1

Glossary

wasmCloud uses several terms with distinct meanings in the context of the platform and the WebAssembly ecosystem.

Capability

An abstraction for a given functionality (such as key-value storage or connection over HTTP) utilized by a WebAssembly component.

Component

Components are portable, interoperable WebAssembly binaries that implement stateless logic. Components are .wasm files that include interface definitions which define the contracts through which they may relate to other entities.

Host

A wasmCloud host is a runtime environment node consisting of a WebAssembly runtime (Wasmtime) and additional layers of security and functionality. Multiple hosts may run on a single machine and hosts are meant to be ephemeral.

Host Group

A host group is a set of wasmCloud hosts.

Host Plugin

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.

Interface

Interfaces are contracts that define the relationships between entities like components and providers, often defining functionalities like HTTP or key-value storage at a high and vendor-agnostic level. Interfaces describe a component or provider's requirements ("imports") and exposed functions that may be used by other entities ("exports"). Interfaces are defined in WebAssembly Interface Type (WIT) files.

NATS

NATS is a connective technology for distributed systems used as a transport in production wasmCloud deployments. NATS is governed by the Cloud Native Computing Foundation.

For more information, see the NATS documentation.

wash

wash is shorthand for Wasm Shell, the open source CLI tool for developing and publishing WebAssembly components. Using wash, you can build components, view component interfaces, publish components to an OCI registry, and more.

For more information, see Wasm Shell.

Wasm

Wasm is shorthand for WebAssembly.

Wasmtime

Wasmtime is an open source WebAssembly runtime wrapped by wasmCloud's wash-runtime crate. Wasmtime is maintained by the Bytecode Alliance and may be used as a standalone tool.

For more information, see the Wasmtime documentation.

WebAssembly

WebAssembly is a bytecode format paired with a virtual instruction set architecture that can serve as a compilation target for any language. Developers can compile code from a given language to a very small binary that runs on what is essentially a tiny virtual machine, enabling that code to run in any environment, including browsers, servers, edge devices, clouds, and more.

For more information, see WebAssembly.org.

WebAssembly Component Model

The WebAssembly Component Model is a specification for WebAssembly binaries that enables them to interoperate—meaning that a component written in one language (Rust, for example) can communicate with a component written in another language (such as Go) using shared types and functions. When we talk about components in wasmCloud, we are simply talking about standard WebAssembly components conforming to the Component Model, which may run anywhere else that runs components.

For more information on components and the Component Model, see Components or the Component Model documentation.

WebAssembly Module

WebAssembly modules are units of code conforming to the core WebAssembly specification. These are sometimes contrasted with components, but components are modules with an additional layer of specification to the Component Model.

For more information, see the WebAssembly core specification.

WebAssembly System Interface (WASI)

WASI stands for "WebAssembly System Interface" and refers to a group of standard APIs for use by WebAssembly binaries. WASI is developed and maintained by the WASI Subgroup in the W3C WebAssembly Community Group. WASI interfaces are sometimes called "proposals" as they move through a multi-stage proposal process before being accepted as a standard. You may see the second major WASI release referred to variously as WASI 0.2, WASI P2, or WASI Preview 2.

For more information, see WASI.dev.

WebAssembly Interface Type (WIT)

WIT stands for "WebAssembly Interface Type." WIT is an interface description language used to define the high-level interfaces used by components, such as the APIs included in WASI. In wasmCloud, all interfaces are defined in WIT.

For more information on WIT, see the Component Model documentation.