@jsage/wasi
TypeScript icon, indicating that this package has built-in type declarations

0.14.0 • Public • Published

@jsage/wasi

Javascript library for interacting with WASI Modules in Node.js.

(TODO: and in the Browser.)

This is a fork of version 0.12.0 of @wasmer/wasi to keep it alive, since the Wasmer company decided to end it, and I would like to use it in JSage.

Table of Contents

Features

@jsage/wasi uses the same API as the future WASI integration in Node.

However, @jsage/wasi is focused on:

  • Bringing WASI to an Isomorphic context (Node.js and the Browser)
  • Make it easy to plug in different filesystems (via wasmfs)
  • Make it type-safe using Typescript
  • Pure JavaScript implementation (no Native bindings needed)
  • Very small

Installation

To install @jsage/wasi, run this command:

npm install @jsage/wasi

Quick Start

This quick start is for node. It's something like this. See lib/src/wasm.ts in the JSage source code for something that uses @jsage/wasi in a real application for a better tested example.

import { WASI } from "@jsage/wasi";
import fs from "fs";
import nodeBindings from "@jsage/wasi/dist/bindings/node";

const wasi = new WASI({
  args: [],
  env: {},
  bindings: {...nodeBindings, fs}
});

const source = await readFile(pathToWasm);
const typedArray = new Uint8Array(source);
const result = await WebAssembly.instantiate(typedArray, wasmOpts);
wasi.start(result.instance);

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 0.14.0
    0
    • latest

Version History

  • Version
    Downloads (Last 7 Days)
    • Published
  • 0.14.0
    0
  • 0.13.0
    0

Package Sidebar

Install

npm i @jsage/wasi

Weekly Downloads

0

Version

0.14.0

License

MIT

Unpacked Size

290 kB

Total Files

41

Last publish

Collaborators

  • wstein