Rebuild example-host/add.wasm from tutorial/adder project#333
Merged
Conversation
```sh
$ cargo run --release -- 1 2 add.wasm
Finished `release` profile [optimized] target(s) in 0.14s
Running `target/release/example-host 1 2 add.wasm`
Error: Failed to instantiate the example world
Caused by:
no exported instance named `docs:adder/add@0.1.0`
$ cp ../tutorial/adder/target/wasm32-wasip2/release/adder.wasm add.wasm
$ cargo run --release -- 1 2 add.wasm
Finished `release` profile [optimized] target(s) in 0.10s
Running `target/release/example-host 1 2 add.wasm`
1 + 2 = 3
```
context
```wit
//wasm-tools component wit example-host/add.wasm
package root:component;
world root {
export add: func(x: s32, y: s32) -> s32;
}
//cat tutorial/wit/adder/world.wit
package docs:adder@0.1.0;
interface add {
add: func(x: u32, y: u32) -> u32;
}
world adder {
export add;
}
```
Collaborator
|
Hey @ohAitch thanks for getting on this so fast! Did this not require any changes to the adder code? I think I'm a little confused about why there's only the new binary rather than some code changes along with |
ohAitch
added a commit
to ohAitch/component-docs
that referenced
this pull request
Mar 5, 2026
TODO deduplicate with add.wasm see bytecodealliance#333 ```sh cd component-model/examples/example-c-host gcc -o host host.c -lwasmtime && ./host 6 7 adder.wasm ``` Co-authored-by: Shelley <shelley@exe.dev>
Merged
Contributor
Author
|
I think what happened is the wit changes made it into the rust client source and made it into the rust host source but the artefact was not checked in. |
vados-cosmonic
approved these changes
Mar 5, 2026
Collaborator
vados-cosmonic
left a comment
There was a problem hiding this comment.
LGTM 🚀
Thanks for this @ohAitch !
ohAitch
added a commit
to ohAitch/component-docs
that referenced
this pull request
Mar 5, 2026
TODO deduplicate with add.wasm see bytecodealliance#333 ```sh cd component-model/examples/example-c-host gcc -o host host.c -lwasmtime && ./host 6 7 adder.wasm ``` Co-authored-by: Shelley <shelley@exe.dev>
ohAitch
added a commit
to ohAitch/component-docs
that referenced
this pull request
Apr 15, 2026
TODO deduplicate with add.wasm see bytecodealliance#333 ```sh cd component-model/examples/example-c-host gcc -o host host.c -lwasmtime && ./host 6 7 adder.wasm ``` Co-authored-by: Shelley <shelley@exe.dev>
kate-goldenring
added a commit
that referenced
this pull request
Apr 22, 2026
* Proof of concept C host TODO deduplicate with add.wasm see #333 ```sh cd component-model/examples/example-c-host gcc -o host host.c -lwasmtime && ./host 6 7 adder.wasm ``` Co-authored-by: Shelley <shelley@exe.dev> * (reproducibility) add Dockerfile I had some difficulty setting up the C toolchains, here's everything pinned down as a sanity check ```sh docker build -t example-c-host . docker run example-c-host ``` Co-authored-by: Shelley <shelley@exe.dev> * Revise instructions for running components in C/C++ Documentation is not my forté but the current "running things from C is impossible due to #issue (closed)" is _definitely_ out of date. Needs revision into a more helpful pointer to the code introduced in this PR, whatever its project name and contents shall end up being. Possibly broken out into a separate .md fragments like the rust one, possibly that was only necessary to share instructions with rust.md and the existence of the c/c++ host can stay local to this file. * Suggested updates to proof of concept C host documentation - Fills in documentation on how to use the C host - Updates Dockerfile to be cross architecture - Adds a new Dockerfile that is just the host Signed-off-by: Kate Goldenring <kgoldenr@akamai.com> * Add wasmtime invoke to the C docs Signed-off-by: Kate Goldenring <kgoldenr@akamai.com> * Simplify Dockerfiles: drop guest_and_host, rename to Dockerfile, use volume mount - Delete Dockerfile.guest_and_host (broken wasi-sdk arch mapping; unnecessary now that upstream add.wasm is available via rebase) - Rename Dockerfile.host → Dockerfile - Fix missing trailing newline - Update c.md: remove guest_and_host references, fix Docker instructions to use volume mount with $(pwd)-relative path Co-authored-by: Shelley <shelley@exe.dev> * Add CI workflow for C host example Tests both the native build (gcc + wasmtime C API) and the Docker workflow against the checked-in add.wasm. Co-authored-by: Shelley <shelley@exe.dev> --------- Signed-off-by: Kate Goldenring <kgoldenr@akamai.com> Co-authored-by: Shelley <shelley@exe.dev> Co-authored-by: Kate Goldenring <kgoldenr@akamai.com> Co-authored-by: exe.dev user <exedev@wasm-component-test.exe.xyz>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
$ cargo run --release -- 1 2 add.wasm Finished `release` profile [optimized] target(s) in 0.14s Running `target/release/example-host 1 2 add.wasm` Error: Failed to instantiate the example world Caused by: no exported instance named `docs:adder/add@0.1.0` $ cp ../tutorial/adder/target/wasm32-wasip2/release/adder.wasm add.wasm $ cargo run --release -- 1 2 add.wasm Finished `release` profile [optimized] target(s) in 0.10s Running `target/release/example-host 1 2 add.wasm` 1 + 2 = 3context