bytecodealliance / bytecodealliance/ComponentizeJS

Newer versions of wasi:http/incoming-handler are tied to version in StarlingMonkey

Open
#313 0 comments 0 reactions 0 assignees View on GitHub
bug feature/fetch-event feature/wasi project/starlingmonkey
Dominant language
Rust
Stars
391
Forks
53
Avg merge
3d 5h
Merged PRs (30d)
1

Description

At present, `componentize-js` will error when users attempt to use a version of `wasi:http/incoming-handler` that is not being used by StarlingMonkey underneath.

```
(jco componentize) ComponentError: failed to encode a component from module
$failed to decode world from module

Caused by:
0: module was not valid
1: failed to find export of interface `wasi:http/incoming-handler@0.2.8` function `handle`
at componentNew (file:///path/to/project/node_modules/.pnpm/@bytecodealliance+jco@1.15.1/node_modules/@bytecodealliance/jco/obj/wasm-tools.js:4659:11)
at componentNew (file:///path/to/project/node_modules/.pnpm/@bytecodealliance+jco@1.15.1/node_modules/@bytecodealliance/jco/src/api.js:48:12)
at async componentize (file:///path/to/project/node_modules/.pnpm/@bytecodealliance+componentize-js@0.19.2/node_modules/@bytecodealliance/componentize-js/src/componentize.js:342:5)
at async componentize (file:///path/to/project/node_modules/.pnpm/@bytecodealliance+jco@1.15.1/node_modules/@bytecodealliance/jco/src/cmd/componentize.js:25:24)
at async file:///path/to/project/node_modules/.pnpm/@bytecodealliance+jco@1.15.1/node_modules/@bytecodealliance/jco/src/jco.js:485:17
```

It would be ideal if people could easily update their WASI versions just like if they were using `wasi:http` manually, but obviously this becomes a problem of trying to support a matrix of wasi:http versions with the version of StarlingMonkey that is used.

See also #282

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reproducing the componentize failure for wasi:http/incoming-handler@0.2.8, then read componentize.js and the related src/api.js and jco.js entry points shown in the trace. Define how supported WASI versions interact with the StarlingMonkey version, and verify that the selected versions can be componentized without the missing-export error.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, wasm
Domain
tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.