Skip to main content
Version: 1.0

Platform Overview

wasmCloud is a universal application platform that enables you to write code in your language of choice, compile the code into a WebAssembly component, and run your application anywhere—from your laptop to the edge to the cloud.

wasmCloud platform

In wasmCloud, applications are comprised of components and providers:

  1. Components are portable, interoperable WebAssembly binaries that implement stateless logic.
  2. Providers are executable host plugins that implement longer-lived processes, typically providing reusable capabilities (such as key-value storage).

Simple diagram of application, comprised of component and provider

Applications run on hosts which may be clustered on a lattice:

  1. A host is a runtime environment node consisting of a WebAssembly runtime (Wasmtime) and additional layers of security and functionality.
  2. A lattice is a self-forming, self-healing mesh network that provides a unified, flat topology across environments using NATS.

Diagram of application on host and lattice

Components and providers communicate with one another via interfaces. When components use the same interface, they may be linked either directly or over the lattice.

  1. 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.
  2. Linking is the connection of a component's requirements (or "imports") to the exposed function (or "export") of another entity.

Diagram of application with links over the lattice

Applications may be built out of any number of components and providers. A given provider may be dedicated to one component or (more typically) may link with multiple components ranging across applications.

Taken together, these concepts shape an architecture that enables you to run flexible, efficient, and secure WebAssembly workloads on a resilient lattice that may encompass cloud, on-prem, and edge environments.

Compared to Kubernetes...

For cloud native developers and operators, wasmCloud is to WebAssembly components as Kubernetes is to containers. Components are the portable unit of code, and wasmCloud orchestrates deployments across distributed environments.

Why use wasmCloud?

  • Components are interoperable and composable, enabling new, accelerated software development paradigms driven by abstracted, reusable interfaces. Components are also architecture-agnostic and typically much smaller and more efficient, enabling them to run in resource-constrained environments where even minimal containers are impractical.

  • The architecture of wasmCloud makes it naturally suited to hybrid clouds and multi-tenant environments, with failover and load balancing that simply works out of the box.

wasmCloud can stand alone or run on Kubernetes with the wasmCloud Kubernetes operator. Moreover, wasmCloud is designed to integrate with existing cloud native tooling and standards such as OpenTelementry and Open Policy Agent. See wasmCloud with Kubernetes to learn more.

Exploring the platform

The best way to learn how wasmCloud works is to follow the Quickstart. If you've completed the Quickstart or wish to explore the core concepts of wasmCloud in more depth, see the following pages in this section, which are best read in order: