Skip to content

Commit 5ba5832

Browse files
refactor: create new component model concepts section
Signed-off-by: Victor Adossi <[email protected]>
1 parent 1e1955d commit 5ba5832

File tree

3 files changed

+36
-34
lines changed

3 files changed

+36
-34
lines changed

component-model/src/SUMMARY.md

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,12 @@
66
# Understanding Component Model
77

88
- [Why the Component Model?](./design/why-component-model.md)
9-
- [Components](./design/components.md)
10-
- [Interfaces](./design/interfaces.md)
11-
- [Worlds](./design/worlds.md)
12-
- [WIT](./design/wit.md)
13-
- [Packages](./design/packages.md)
9+
- [Component Model concepts](./design/component-model-concepts.md)
10+
- [Components](./design/components.md)
11+
- [Interfaces](./design/interfaces.md)
12+
- [Worlds](./design/worlds.md)
13+
- [Packages](./design/packages.md)
14+
- [WIT Reference](./design/wit.md)
1415

1516
# Using Component Model
1617

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
## Component Model Concepts
2+
3+
This section introduces the core concepts and [rationale](./why-component-model.md) of the component model.
4+
5+
* A [WebAssembly Component](./components.md) is the next evolution of core WebAssembly binaries.
6+
* WebAssembly components are *nestable* -- they may contain one or more core modules and/or sub-components composed together.
7+
* The Component Model extends core WebAssembly by introducing higher level types and interface-driven development
8+
* [WebAssembly Interface Types (WIT)][wit] is the [IDL (Interface Definition Language)][wiki-idl] used to formally define functionality for WebAssembly modules.
9+
* 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.
10+
* An [Interface](./interfaces.md) describes the types and functions used for a specific, focused bit of functionality.
11+
* A [World](./worlds.md) assembles interfaces to express what features a component offers, and what features it depends on.
12+
* A [Package](./packages.md) is a set of WIT files containing a related set of interfaces and worlds.
13+
* The Component Model introduces the idea of a "platform" to core WebAssembly -- enabling the structured, standardized use of "host" functionality for WebAssembly "guest"s.
14+
* The WebAssembly System Interface (WASI) defines in WIT a family of interfaces for common system-level functions.
15+
* WASI defines common execution environments such as the command line (`wasi:cli`) or a HTTP server (`wasi:http`).
16+
* 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
17+
18+
> [!NOTE]
19+
> The Component Model is stewarded by the Bytecode Alliance and designed [in the open][cm-repo].
20+
>
21+
> See the [`WebAssembly/component-model`][cm-repo] repository for [Goals][goals],[use cases][use-cases], and [high level design choices][design-choices].
22+
23+
[cm-repo]: https://github.com/WebAssembly/component-model
24+
[wiki-idl]: https://en.wikipedia.org/wiki/Web_IDL
25+
[goals]: https://github.com/WebAssembly/component-model/blob/main/design/high-level/Goals.md
26+
[use-cases]: https://github.com/WebAssembly/component-model/blob/main/design/high-level/UseCases.md
27+
[design-choices]: https://github.com/WebAssembly/component-model/blob/main/design/high-level/Choices.md
28+
[wit]: https://github.com/WebAssembly/component-model/blob/main/design/mvp/WIT.md
29+
30+
[!NOTE]: #

component-model/src/introduction.md

Lines changed: 0 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -33,35 +33,6 @@ The WebAssembly Component Model is a broad-reaching architecture for building in
3333
> _Compiler and Wasm runtime developers_ can take a look at the [Component Model specification](https://github.com/WebAssembly/component-model) to
3434
> see how to add support for the component model to their project.
3535
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-
* [WebAssembly Interface Types (WIT)][wit] 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].
57-
58-
[cm-repo]: https://github.com/WebAssembly/component-model
59-
[wiki-idl]: https://en.wikipedia.org/wiki/Web_IDL
60-
[goals]: https://github.com/WebAssembly/component-model/blob/main/design/high-level/Goals.md
61-
[use-cases]: https://github.com/WebAssembly/component-model/blob/main/design/high-level/UseCases.md
62-
[design-choices]: https://github.com/WebAssembly/component-model/blob/main/design/high-level/Choices.md
63-
[wit]: https://github.com/WebAssembly/component-model/blob/main/design/mvp/WIT.md
64-
6536
## Status
6637

6738
[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.

0 commit comments

Comments
 (0)