A WebAssembly-based shell.
wsh
brings a WebAssembly sandbox straight to the
shell, providing an interactive interface for manipulating and restricting Wasm
executables. This allows a programmer to:
- Run executables in a contained envrionment
- Suspend an executable's disk side effects in-memory
- Load functions from executables into the shell environment for testing
- Share the binaries to any system!
wsh
empowers a WebAssembly-oriented workflow, taking advantage of the
security,
portability,
and
module interface
that Wasm provides. At a high-level, wsh
's goal is to take the power of
WebAssembly and bring it to the everyday programmer. Start building with Wasm,
and enjoy the benefits with wsh
today!
This project is still in infancy. There are many aspects of the shell that are still under consideration. Some POSIX-style shell functionality does not exist yet, and some syntax/API decisions still need to be made. That being said, the Wasm functionality aims to be as polished as possible. The embedded Wasm runtime passes the full specifcation testsuite, and work was done to make the runtime performant.
This project is licenced under the MIT License.