nodejs / nodejs/uvwasi

Preview2 Status

Open
#255 1 comment 8 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C
Stars
270
Forks
60
PR merge metrics
No merged PRs in 30d

Description

As a further update on https://github.com/nodejs/uvwasi/issues/59, it is now possible to use Preview 2 components via Jco with support for the full set of Preview2 APIs, passing the conformance test suites on Node.js.

To achieve this, Jco implements a Preview 2 implementation on top of the high-level Node.js APIs using the preview2-shim library, which while correct has performance limitations that a uvwasi implementation would avoid. There is an open issue on the Jco project for improving performance in Jco in https://github.com/bytecodealliance/jco/issues/417.

Ideally for the best performance, Preview 2 should be fully implemented in uvwasi, so this is very much a question of implementation effort not design or architecture.

On top of low-level bindings development, there are also the high-level API design questions for Preview 2. Direct host integration, eg for a Node.js Preview2 implementation, should likely involve:

High-level API work can already be achieved using Jco transpile today as an internal implementation. These two work streams - high-level API integration, and low-level uvwasi updating can thus be implemented completely independently at this point in time based on how development priorities turn out.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with uvwasi issue #59, the packages/preview2-shim library, and the Preview 2 conformance suites mentioned here. Clarify whether the work targets low-level uvwasi support, Node.js high-level integration such as WebAssembly.compile and ESM support, or both; done should include an agreed scope and passing conformance coverage.

Written by the indexing model from the issue text.

Assessment

Tech stack
c, node.js, wasm
Domain
backend-api-design, operating-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.