You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
> This documentation is aimed at _users_ of the component model: developers of libraries and applications. _Compiler and Wasm runtime developers_ can take a look at the [Component Model specification](https://github.com/WebAssembly/component-model) to see how to add support for the component model to their project.
30
+
> [!INFO]
31
+
>This documentation is aimed at _users_ of the component model: developers of libraries and applications.
32
+
>
33
+
> _Compiler and Wasm runtime developers_ can take a look at the [Component Model specification](https://github.com/WebAssembly/component-model) to
34
+
> see how to add support for the component model to their project.
35
+
36
+
## A quick overview of core concepts
37
+
38
+
This section introduces the core concepts and [rationale](./design/why-component-model.md) of the component model.
39
+
40
+
* A [WebAssembly Component](./design/components.md) is the next evolution of core WebAssembly binaries.
41
+
* WebAssembly components are *nestable* -- they may contain one or more core modules and/or sub-components composed together.
42
+
* The Component Model extends core WebAssembly by introducing higher level types and interface-driven development
43
+
*[WIT (Wasm Interface Types)](./wit-overview.md) is the [IDL (Interface Definition Language)][wiki-idl] used to formally define functionality for WebAssembly modules.
44
+
* With WIT, WebAssembly components gain the ability to conform an language-agnostic and encode that support, so any WebAssembly component binary can be interrogated *and* executed.
45
+
* An [Interface](./design/interfaces.md) describes the types and functions used for a specific, focused bit of functionality.
46
+
* A [World](./design/worlds.md) assembles interfaces to express what features a component offers, and what features it depends on.
47
+
* A [Package](./design/packages.md) is a set of WIT files containing a related set of interfaces and worlds.
48
+
* The Component Model introduces the idea of a "platform" to core WebAssembly -- enabling the structured, standardized use of "host" functionality for WebAssembly "guest"s.
49
+
* The WebAssembly System Interface (WASI) defines in WIT a family of interfaces for common system-level functions.
50
+
* WASI defines common execution environments such as the command line (`wasi:cli`) or a HTTP server (`wasi:http`).
51
+
* The Component Model introducs makes core WebAssembly composable -- components that provide functionality and those that use them can be composed together into *one* resulting component
52
+
53
+
> [!NOTE]
54
+
> The Component Model is stewarded by the Bytecode Alliance and designed [in the open][cm-repo].
55
+
>
56
+
> See the [`WebAssembly/component-model`][cm-repo] repository for [Goals][goals],[use cases][use-cases], and [high level design choices][design-choices].
[WASI 0.2.0 was released](https://github.com/WebAssembly/WASI/pull/577) Jan 25, 2024, providing a stable release of WASI and the component model. This [is a stable set of WIT definitions](https://github.com/WebAssembly/WASI/tree/main/wasip2) that components can target. WASI proposals will continue to evolve and new ones will be introduced; however, users of the component model can now pin to the stable 0.2.0 release.
66
+
[WASI 0.2.0 was released](https://github.com/WebAssembly/WASI/pull/577) Jan 25, 2024, providing a stable release of WASI and the component model.
67
+
This [is a stable set of WIT definitions](https://github.com/WebAssembly/WASI/tree/main/wasip2) that components can target. WASI proposals will
68
+
continue to evolve and new ones will be introduced; however, users of the component model can now pin to the stable 0.2.0 release.
0 commit comments