Skip to content

Commit 8c36f77

Browse files
feat: add generic guides for other languages
1 parent 5dd68eb commit 8c36f77

File tree

5 files changed

+57
-8
lines changed

5 files changed

+57
-8
lines changed

component-model/src/SUMMARY.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,11 @@
3030
- [Importing and reusing components](./importing-and-reusing-components.md)
3131
- [Rust](./language-support/importing-and-reusing-components/rust.md)
3232
- [Javascript](./language-support/importing-and-reusing-components/javascript.md)
33+
- [Other Languages](./language-support/importing-and-reusing-components/other-languages.md)
3334
- [Creating runnable components](./creating-runnable-components.md)
3435
- [Rust](./language-support/creating-runnable-components/rust.md)
3536
- [Javascript](./language-support/creating-runnable-components/javascript.md)
37+
- [Other languages](./language-support/creating-runnable-components/other-languages.md)
3638
- [Using WIT resources](./using-wit-resources.md)
3739
- [Rust](./language-support/using-wit-resources/rust.md)
3840
- [Running Components](./running-components.md)

component-model/src/creating-runnable-components.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,9 +48,10 @@ This section explores how to do the above in relevant languages.
4848

4949
This guide is implemented for various languages:
5050

51-
| Language |
52-
|-----------------------------------------------------------------------------|
53-
| [Rust](./language-support/creating-runnable-components/rust.md) |
54-
| [Javascript](./language-support/creating-runnable-components/javascript.md) |
51+
| Language |
52+
|---------------------------------------------------------------------------------------|
53+
| [Rust](./language-support/creating-runnable-components/rust.md) |
54+
| [Javascript](./language-support/creating-runnable-components/javascript.md) |
55+
| [Other Languages](./language-support/creating-runnable-components/other-languages.md) |
5556

5657
[docs-wit]: ./design/wit.md

component-model/src/importing-and-reusing-components.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,10 @@ The `calculator` component has the following interface:
1919

2020
This guide is implemented for various languages:
2121

22-
| Language |
23-
|---------------------------------------------------------------------------------|
24-
| [Rust](./language-support/importing-and-reusing-components/rust.md) |
25-
| [Javascript](./language-support/importing-and-reusing-components/javascript.md) |
22+
| Language |
23+
|-------------------------------------------------------------------------------------------|
24+
| [Rust](./language-support/importing-and-reusing-components/rust.md) |
25+
| [Javascript](./language-support/importing-and-reusing-components/javascript.md) |
26+
| [Other languages](./language-support/importing-and-reusing-components/other-languages.md) |
2627

2728
[docs-wit]: ./design/wit.md
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Creating Runnable Components (Other Languages)
2+
3+
Just because a given programming language is not listed in this guide does not
4+
mean it is impossible to create runnable WebAssembly components with it.
5+
6+
For languages not listed in this guide, it is often possible to create runnable components by
7+
following the main principles of the other guides, using the help of the available WebAssembly
8+
toolchain.
9+
10+
Generally, WebAssembly toolchains in the language in question may contain a way to:
11+
12+
1. Create a WebAssembly component with the `_start` export (a "command" compnent)
13+
2. Create a component that exports the `wasi:cli/run` interface
14+
15+
## Adding a New Language to the Guide
16+
17+
Know of a language guide we should add to this guide? Create a PR to this [repository][repo-pr] that adds
18+
the new language guide (similar to others in this section).
19+
20+
[repo-pr]: https://github.com/bytecodealliance/component-docs/pulls
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# Importing and Reusing components (Other Languages)
2+
3+
Just because a given programming language is not listed in this guide does not
4+
mean it is impossible to import and reuse WebAssembly components with it.
5+
6+
For languages not listed in this guide, it is often possible to import and reuse WebAssembly components
7+
by following the main principles of the other guides where applicable, using the help of the local
8+
WebAssembly toolchain.
9+
10+
Generally, WebAssembly toolchains in the language in question should contain a way to:
11+
12+
1. Create components that import other components
13+
2. Create host/platforms that can load and run components
14+
3. Compose together components (possibly during build time)
15+
16+
Note that generic tooling like [`wac`][wac] can be used to compose components together, regardless of language.
17+
18+
[wac]: https://github.com/bytecodealliance/wac
19+
20+
## Adding a New Language to the Guide
21+
22+
Know of a language guide we should add to this guide? Create a PR to this [repository][repo-pr] that adds
23+
the new language guide (similar to others in this section).
24+
25+
[repo-pr]: https://github.com/bytecodealliance/component-docs/pulls

0 commit comments

Comments
 (0)