The WebAssembly Component Model is a broad-reaching architecture for building interoperable WebAssembly libraries, applications, and environments. It defines components as portable, sandboxed units of code that can compose with each other across language and runtime boundaries. The model introduces interfaces, worlds, and the WebAssembly Interface Type (WIT) language, along with a canonical ABI, binary and text formats, and a concurrency model. The Component Model underpins the WebAssembly System Interface (WASI) Preview 2 and is the foundation for portable Wasm on browsers, servers, edge, and embedded environments.
Component Model publishes 4 APIs on the APIs.io network. Tagged areas include ABI, Bytecode Alliance, Component, Interfaces, and Modular.
Component Model’s developer surface includes documentation and 9 more developer resources.
Create-or-Update Ergonomics could not be measured. We hold no machine-readable contract for
this provider to read, so there is nothing to measure a write surface against. Excluded rather than scored zero:
never-measured and measured-empty are different facts. Publishing an OpenAPI is what makes this facet — and
several others — scorable at all.
The Component Model specification repository under the W3C WebAssembly Community Group. Contains design documents, the formal specification drafts, the WIT grammar, the canonica...
WIT is the interface definition language for the Component Model. WIT describes the imports and exports of a component using interfaces and worlds. WIT is consumed by language t...
WASI Preview 2 is the first WASI release built on the Component Model. It defines a set of interfaces such as wasi:filesystem, wasi:io, wasi:http, wasi:cli, and wasi:sockets tha...
A landscape of toolchains and runtimes that implement the Component Model, including Wasmtime, Jco, wit-bindgen language bindings, cargo-component for Rust, ComponentizeJS, and ...
aid: component-model
url: https://raw.githubusercontent.com/api-evangelist/component-model/refs/heads/main/apis.yml
name: Component Model
kind: standard
description: The WebAssembly Component Model is a broad-reaching architecture for building interoperable WebAssembly libraries,
applications, and environments. It defines components as portable, sandboxed units of code that can compose with each other
across language and runtime boundaries. The model introduces interfaces, worlds, and the WebAssembly Interface Type (WIT)
language, along with a canonical ABI, binary and text formats, and a concurrency model. The Component Model underpins the
WebAssembly System Interface (WASI) Preview 2 and is the foundation for portable Wasm on browsers, servers, edge, and embedded
environments.
deliveryModel:
model: unknown
open_source: unknown
commercial: false
callable_host: false
label: Delivery model not determined — needs a product licence on record
confidence: low
source:
- repository-unlicensed
generated: '2026-08-28'
method: derived
accessModel:
pricing: freemium
onboarding: unknown
trial: false
try_now: false
public: false
label: Freemium
confidence: medium
source:
- plans
generated: '2026-07-22'
method: derived
image: https://kinlane-images.s3.amazonaws.com/shared/apis-json/icons/component-model.png
tags:
- ABI
- Bytecode Alliance
- Component
- Interfaces
- Modular
- Specification
- WASI
- WebAssembly
- WIT
- World
tags_raw:
- ABI
- Bytecode Alliance
- Component
- Interface
- Modular
- Specification
- WASI
- WebAssembly
- WIT
- World
created: '2025-01-01'
modified: '2026-04-28'
specificationVersion: '0.23'
apis:
- aid: component-model:specification
name: WebAssembly Component Model Specification
description: The Component Model specification repository under the W3C WebAssembly Community Group. Contains design documents,
the formal specification drafts, the WIT grammar, the canonical ABI, and the binary and text formats that define a WebAssembly
component.
humanURL: https://github.com/WebAssembly/component-model
baseURL: https://github.com/WebAssembly
tags:
- Specification
- W3C
- WebAssembly
properties:
- type: GitHubRepository
url: https://github.com/WebAssembly/component-model
- type: Documentation
url: https://github.com/WebAssembly/component-model/blob/main/design/mvp/Explainer.md
- type: Specification
url: https://github.com/WebAssembly/component-model/tree/main/design/mvp
- type: Reference
url: https://github.com/WebAssembly/component-model/blob/main/design/mvp/CanonicalABI.md
- type: Reference
url: https://github.com/WebAssembly/component-model/blob/main/design/mvp/WIT.md
x-features:
- Defines components, interfaces, and worlds
- Introduces WIT, the WebAssembly Interface Type language
- Specifies a canonical ABI between components and host
- Provides binary and text formats for components
- Foundation for WASI Preview 2 system interfaces
x-useCases:
- Tracking the evolving Component Model standard
- Implementing language toolchains targeting components
- Implementing runtimes that load and link components
- aid: component-model:wit
name: WebAssembly Interface Type (WIT)
description: WIT is the interface definition language for the Component Model. WIT describes the imports and exports of
a component using interfaces and worlds. WIT is consumed by language toolchains to generate bindings and by runtimes to
validate and link components at load time.
humanURL: https://component-model.bytecodealliance.org/design/wit.html
baseURL: https://component-model.bytecodealliance.org
tags:
- Bindings
- IDL
- Interfaces
- WIT
tags_raw:
- Bindings
- IDL
- Interface
- WIT
properties:
- type: Documentation
url: https://component-model.bytecodealliance.org/design/wit.html
- type: Specification
url: https://github.com/WebAssembly/component-model/blob/main/design/mvp/WIT.md
- type: Reference
url: https://github.com/bytecodealliance/wit-bindgen
x-features:
- Declarative IDL for components
- Records, variants, enums, flags, options, results
- Resources with methods for borrowed and owned references
- Interfaces compose into worlds
x-useCases:
- Authoring portable component interfaces
- Generating language bindings via wit-bindgen
- Defining stable contracts between platform and components
- aid: component-model:wasi-preview-2
name: WebAssembly System Interface Preview 2
description: WASI Preview 2 is the first WASI release built on the Component Model. It defines a set of interfaces such
as wasi:filesystem, wasi:io, wasi:http, wasi:cli, and wasi:sockets that components can import to interact with the host
system in a portable, capability-based way.
humanURL: https://wasi.dev/
baseURL: https://wasi.dev
tags:
- System Interface
- WASI
- Capabilities
properties:
- type: Documentation
url: https://wasi.dev/
- type: GitHubOrganization
url: https://github.com/WebAssembly/WASI
- type: Reference
url: https://github.com/WebAssembly/wasi-http
- type: Reference
url: https://github.com/WebAssembly/wasi-filesystem
x-features:
- Capability-based system access
- Defined as a collection of WIT worlds
- wasi:http provides a portable HTTP server interface
- Worlds for CLI, HTTP proxy, and embedder customization
x-useCases:
- Building portable WebAssembly server functions
- Running components in Wasmtime, Jco, WasmEdge, and Spin
- Implementing capability-secure host bindings
- aid: component-model:bytecode-alliance-implementations
name: Component Model Implementations
description: A landscape of toolchains and runtimes that implement the Component Model, including Wasmtime, Jco, wit-bindgen
language bindings, cargo-component for Rust, ComponentizeJS, and Spin for serverless Wasm. These implementations are largely
stewarded by the Bytecode Alliance.
humanURL: https://bytecodealliance.org/
baseURL: https://bytecodealliance.org
tags:
- Bytecode Alliance
- Implementations
- Runtimes
- Toolchains
properties:
- type: Reference
url: https://github.com/bytecodealliance/wasmtime
- type: Reference
url: https://github.com/bytecodealliance/wit-bindgen
- type: Reference
url: https://github.com/bytecodealliance/cargo-component
- type: Reference
url: https://github.com/bytecodealliance/jco
- type: Reference
url: https://github.com/bytecodealliance/ComponentizeJS
- type: Reference
url: https://github.com/fermyon/spin
x-features:
- Wasmtime native runtime with component support
- Jco JavaScript host and tooling
- cargo-component for Rust component projects
- wit-bindgen for cross-language bindings
x-useCases:
- Running components on the server, edge, or in browsers
- Generating language bindings from WIT
- Building serverless Wasm functions on Spin
common:
- type: IssueTracker
url: https://github.com/WebAssembly/component-model/issues
- type: CodeOfConduct
url: https://github.com/WebAssembly/.github/blob/main/CODE_OF_CONDUCT.md
- type: DomainSecurity
url: security/component-model-domain-security.yml
- type: Website
url: https://component-model.bytecodealliance.org/
- type: Documentation
url: https://component-model.bytecodealliance.org/design/
- type: GitHubRepository
url: https://github.com/WebAssembly/component-model
- type: GitHubOrganization
url: https://github.com/WebAssembly
- type: Reference
url: https://wasi.dev/
- type: Reference
url: https://bytecodealliance.org/
- type: Working Group
url: https://www.w3.org/community/webassembly/
maintainers:
- FN: Kin Lane
email: kin@apievangelist.com
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.