This is a kernel for running AssemblyScript/WebAssembly applications.
It provides the following.
- Synchronous file system
- Implements the node
processmodule. - Shared Memory between kernel threads to allow for atomic
wait/notifyfor syscalls. - Networking interface for P2P applications.
This project is , which allows this repo to host multiple project in one repo, making it a "mono-repo." The key idea is that each package in the repo must be a stand alone, but it makes it easy to have them depend on each other and you can use a scoping package name. For example, this project needs a wrapper around the assemblyscript compiler, which is conveniently called
@wasmos/assemblyscript.
This project also uses a git submodule for wasa, a fork of jedisct1/wasa, which is a library for interacting with the new wasi, WebAssembly Interface, a core API imported by the runtime.
After cloning,
npm install
npm run bootstrap
This installs all of the top level dependencies, e.g. typescript and jest, and then installs each lerna package. This includes creating symlinks for local dependencies.