0.1.1 • Published 4 years ago

wasi-worker v0.1.1

Weekly downloads
1
License
MIT
Repository
github
Last release
4 years ago

wasi-worker

Current Version Dependencies belly-button-style

Run WASI code inside of a Node.js Worker.

Note: WASI as a technology is still experimental. The WASI APIs in Node.js are also considered experimental and subject to change. For best results, use this module with the most recent version of Node.js.

Usage

The following example demonstrates how wasi-worker is used to create Node.js Worker threads executing WASI nanoprocesses.

'use strict';
const { createWasiWorker } = require('wasi-worker');
// worker is a Worker instance from the Node.js worker_threads module.
const worker = createWasiWorker({
  args: ['foo', '-bar', '--baz=value'],
  env: { ...process.env },
  preopens: { '/sandbox': '/tmp' },
  timeout: 10000,
  wasmFile: 'app.wasm'
});

worker.on('exit', (code) => {
  console.log('wasi worker exited with code:', code);
});

API

This section describes the complete wasi-worker API.

createWasiWorker([options])

  • Arguments
    • options (object) - Optional configuration object supporting the following schema:
      • args (array) - An array of strings that the WebAssembly application will see as command line arguments. Optional. Defaults to [].
      • env (object) - An object similar to process.env that the WebAssembly application will see as its environment. Optional. Defaults to {}.
      • preopens (object) - This object represents the WebAssembly application's sandbox directory structure. The string keys of preopens are treated as directories within the sandbox. The corresponding values in preopens are the real paths to those directories on the host machine. Optional. Defaults to {}.
      • resourceLimits - (object) - An object representing the resource limits imposed on the worker thread. This object is passed verbatim to the Worker constructor. Optional. Defaults to {}.
      • timeout (number) - The maximum number of milliseconds that the WebAssembly may execute for. If the thread has not exited before the timeout has elapsed, the thread is terminated. Optional. Defaults to no timeout.
      • wasmFile (string) - The path to the .wasm file to load and execute.
  • Returns
    • An instance of a Node.js Worker thread.

Executes a WASI application inside a Node.js Worker thread. The returned thread has exactly the same API as one created via Node's Worker constructor.

0.1.1

4 years ago

0.1.0

4 years ago