Nourishing Plushie Monster

    TypeScript icon, indicating that this package has built-in type declarations

    0.4.6 • Public • Published


    npm version npm downloads per month GitHub License

    A high-level AssemblyScript layer for the WebAssembly System Interface (WASI). 🧩

    WASI is an API providing access to the external world to WebAssembly modules. AssemblyScript exposes the low-level WASI standard set of system calls. as-wasi builds a higher level API on top of the AssemblyScript WASI interface, at a similar level to the Node API. 🚀


    You can install as-wasi in your project by running the following:

    npm install --save as-wasi

    Quick Start

    Example usage of the Console and Environ classes:

    import "wasi";
    // Import from the installed as-wasi package
    import { Console, Environ } from "as-wasi";
    // Create an environ instance
    let env = new Environ();
    // Get the HOME Environment variable
    let home = env.get("HOME")!;
    // Log the HOME string to stdout

    Here are some exported classes that are commonly used:

    • FileSystem - Reading and Writing the user's fileystem. 📁
    • Console - General logging to stdout and stderr. 🖥️
    • Environ - Accessing environment variables, command flags, etc... 🌐
    • Date - Getting the current system time. 📅
    • Random - Accessing random numbers. 🤔
    • Time - Allow sleeping and waiting for events to occur.
    • And More! See the Reference API in the next section for the full API.

    Reference API Docs

    Reference API documentation can be found in REFERENCE_API_DOCS. Documentation is generated using typedoc.

    Projects using as-wasi

    • wasmboy - Game Boy / Game Boy Color Emulator Library, 🎮written for WebAssembly using AssemblyScript. 🚀
    • wasmerio/io-devices-lib - Library for interacting with the Wasmer Experimental IO Devices API. Uses WASI for outputting graphics in a framebuffer, and handles mouse/keyboard input.
    • wasm-by-example - Wasm By Example is a website with a set of hands-on introduction examples and tutorials for WebAssembly (Wasm). Wasm By Example features as-wasi by default for the AssemblyScript WASI examples.
    • wasm-matrix - A Matrix effect in your terminal using AssemblyScript 🚀 and WASI 🧩 . This project is a bit older, and uses an older version of as-wasi, but still creates a cool effect!

    If your project is using as-wasi, and you would like to be featured here. Please open a pull request against the README with links to your project, and if appropriate, explaining how as-wasi is being used. 😊


    Contributions are definitely welcome! Feel free to open a PR for small fixes such as typos and things. Larger fixes, or new features should start out as an issue for discussion, in which then a PR should be made. 🥳

    This project will also adhere to the AssemblyScript Code of Conduct.


    MIT. 📝




    npm i as-wasi

    DownloadsWeekly Downloads






    Unpacked Size

    68.2 kB

    Total Files


    Last publish


    • jedisct1