An AssemblyScript API layer for WASI system calls.
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-wasibuilds a higher level API on top of the AssemblyScript WASI interface, at a similar level to the Node API. 🚀
You can install
as-wasiin your project by running the following:
npm install --save as-wasi
Example usage of the
Consoleand
Environclasses:
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 Console.log(home);
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. ⏰
Reference API documentation can be found in REFERENCEAPIDOCS. Documentation is generated using typedoc.
as-wasiby default for the AssemblyScript WASI examples.
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. 📝