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
* Revise introduction
* Update component-model/src/introduction.md
Co-authored-by: Victor Adossi <[email protected]>
* More detail on platforms / what APIs are for
---------
Co-authored-by: Victor Adossi <[email protected]>
>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
39
36
-
## Status
40
+
## WebAssembly components
41
+
42
+
As with all programming, the goal of writing a component
43
+
is to make new functionality available
44
+
by building it out of existing functionality.
45
+
46
+
A WebAssembly component runs on a _platform_,
47
+
which may be a Web browser,
48
+
a stand-alone runtime,
49
+
or even an operating system (when compiling WebAssembly to an executable).
50
+
By running the component, the platform gains the functionality
51
+
that the component implements.
52
+
Likewise, the platform provides functionality
53
+
that code in components can use to interact
54
+
with the outside world.
55
+
56
+
For example:
57
+
58
+
- A user of the component model can build a component
59
+
that converts the system time to another time zone.
60
+
- For the component to work as intended, the underlying platform
61
+
must provide the component with a means to access
62
+
the current system time and the system time zone.
63
+
64
+
## APIs for building WebAssembly components
65
+
66
+
In general, a platform that runs components
67
+
must provide well-defined APIs for accessing functionality
68
+
that components need:
69
+
for example, reading from standard input,
70
+
accessing environment variables,
71
+
or manipulating network sockets.
72
+
73
+
It's useful to have a standard, shared set of APIs
74
+
that WebAssembly components can depend on.
75
+
[WASI](https://wasi.dev/) (the WebAssembly System Interface) is a standards-track specification
76
+
that defines these APIs.
77
+
A system or platform may expose some or all of the WASI APIs to components.
78
+
79
+
### Status
37
80
38
-
[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.
39
-
This [is a stable set of WIT definitions](https://github.com/WebAssembly/WASI/tree/main/wasip2) that components can target. WASI proposals will
40
-
continue to evolve and new ones will be introduced; however, users of the component model can now pin to any stable release >= `v0.2.0`. See [WASI.dev](https://wasi.dev) to stay up to date on the latest releases.
81
+
The current stable release of WASI is [WASI 0.2.0](https://github.com/WebAssembly/WASI/pull/577),
82
+
which was released on January 25, 2024.
83
+
WASI 0.2.0 is [a stable set of WIT definitions](https://github.com/WebAssembly/WASI/tree/main/wasip2)
84
+
that components can target.
85
+
WASI proposals will continue to evolve and new ones will be introduced;
86
+
however, users of the component model can now pin to any stable release >= `v0.2.0`.
87
+
The [WASI.dev roadmap](https://wasi.dev/roadmap) tracks upcoming releases.
0 commit comments