This project is a versatile REPL that illustrates the potential of the WebAssembly Component Model. It features a multi-language plugin system allowing plugins to be written in any language that compiles to WebAssembly. With both CLI and web hosts, this project highlights secure, sandboxed execution and interoperable capabilities across different environments.
The WebAssembly Component Model Experiments repository hosts a versatile REPL environment designed to harness the power of the WebAssembly Component Model, featuring a sandboxed multi-language plugin system. This unified codebase runs seamlessly across both the Command-Line Interface (CLI), built in Rust, and web platforms utilizing TypeScript, running in the browser.
--allow-net: Grants network access to plugins (default is no network access).--allow-read: Permits file system read access.--allow-write: Permits file system write access.--allow-all: Grants all permissions.pluginlab, running in Rust.The repository includes comprehensive setup instructions for using and developing the plugins. Example commands allow users to engage with the CLI instantly and explore multiple plugins developed in Rust, C, and TypeScript. For a quick demo, the CLI can execute commands like:
pluginlab \
--repl-logic https://topheman.github.io/webassembly-component-model-experiments/plugins/repl_logic_guest.wasm \
--plugins https://topheman.github.io/webassembly-component-model-experiments/plugins/plugin_greet.wasm \
--allow-all
To illustrate the project’s capabilities visually, it provides an online demo accessible at Demo, along with a demonstrative link showcasing the CLI in action: CLI Demo.
Developers can create plugins in Rust, C, and TypeScript, leveraging existing capabilities while also possessing the flexibility to experiment with other programming languages in future iterations. The system utilizes a well-defined process to streamline the development, testing, and deployment of plugins.
Overall, the WebAssembly Component Model Experiments project serves as a robust platform for those interested in exploring the intersections of WebAssembly, multi-language support, and secure plugin architecture.
No comments yet.
Sign in to be the first to comment.