温馨提示:本站仅提供公开网络链接索引服务,不存储、不篡改任何第三方内容,所有内容版权归原作者所有
AI智能索引来源:http://www.bun.com/reference/node/wasi
点击访问原文链接

Node.js wasi module | API Reference | Bun

Node.js wasi module | API Reference | BunBuildDocsReferenceGuidesBlogDiscord/node:wasiCWASI

Search the reference...

/

BuildDocsReferenceGuidesBlogDiscord/node:wasiCWASI

Node.js module

wasi

The 'node:wasi' module provides an implementation of the WebAssembly System Interface (WASI), allowing WASI-compliant WebAssembly modules to run in Node.js with access to file systems, clocks, and other host functions.

It includes WASI class for instantiating and executing WASI modules with configurable filesystem and environment.

Works in Bun

Partially implemented. Specific missing features are not detailed.

class WASI

The WASI class provides the WASI system call API and additional convenience methods for working with WASI-based applications. Each WASI instance represents a distinct environment.

readonly wasiImport: Dictany>

wasiImport is an object that implements the WASI system call API. This object should be passed as the wasi_snapshot_preview1 import during the instantiation of a WebAssembly.Instance.

finalizeBindings(instance: object,options?: FinalizeBindingsOptions): void;

Set up WASI host bindings to instance without calling initialize() or start(). This method is useful when the WASI module is instantiated in child threads for sharing the memory across threads.

finalizeBindings() requires that either instance exports a WebAssembly.Memory named memory or user specify a WebAssembly.Memory object in options.memory. If the memory is invalid an exception is thrown.

start() and initialize() will call finalizeBindings() internally. If finalizeBindings() is called more than once, an exception is thrown.

getImportObject(): object;

Return an import object that can be passed to WebAssembly.instantiate() if no other WASM imports are needed beyond those provided by WASI.

If version unstable was passed into the constructor it will return:

{ wasi_unstable: wasi.wasiImport }

If version preview1 was passed into the constructor or no version was specified it will return:

{ wasi_snapshot_preview1: wasi.wasiImport }
initialize(instance: object): void;

Attempt to initialize instance as a WASI reactor by invoking its _initialize() export, if it is present. If instance contains a _start() export, then an exception is thrown.

initialize() requires that instance exports a WebAssembly.Memory named memory. If instance does not have a memory export an exception is thrown.

If initialize() is called more than once, an exception is thrown.

start(instance: object): number;

Attempt to begin execution of instance as a WASI command by invoking its _start() export. If instance does not contain a _start() export, or if instance contains an _initialize() export, then an exception is thrown.

start() requires that instance exports a WebAssembly.Memory named memory. If instance does not have a memory export an exception is thrown.

If start() is called more than once, an exception is thrown.

Type definitionsinterface FinalizeBindingsOptionsmemory?: object
interface WASIOptionsargs?: readonly string[]

An array of strings that the WebAssembly application will see as command line arguments. The first argument is the virtual path to the WASI command itself.

env?: object

An object similar to process.env that the WebAssembly application will see as its environment.

preopens?: Dictstring>

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.

returnOnExit?: boolean

By default, when WASI applications call __wasi_proc_exit() wasi.start() will return with the exit code specified rather than terminatng the process. Setting this option to false will cause the Node.js process to exit with the specified exit code instead.

stderr?: number

The file descriptor used as standard error in the WebAssembly application.

stdin?: number

The file descriptor used as standard input in the WebAssembly application.

stdout?: number

The file descriptor used as standard output in the WebAssembly application.

version: 'unstable' | 'preview1'

The version of WASI requested. Currently the only supported versions are 'unstable' and 'preview1'. This option is mandatory.

Resources

ReferenceDocsGuidesDiscordMerch StoreGitHubBlog 

Toolkit

RuntimePackage managerTest runnerBundlerPackage runner

Project

Bun 1.0Bun 1.1Bun 1.2Bun 1.3RoadmapContributingLicense

Baked with ❤️ in San Francisco

We're hiring →

Node.js wasi module | API Reference | Bun,AI智能索引,全网链接索引,智能导航,网页索引

    The