WebAssembly Studio is an online IDE tool developed by Mozilla that can be used to compile C/C++ and Rust code into WebAssembly (WASM).
WebAssembly Studio is a recent project started at Mozilla, and was created several months ago by combining WasmExplorer and WasmFiddle. Mozilla does not plan to create another IDE to replace popular IDEs, but to bring awareness about WebAssembly and share knowledge about it. Their desire is to move the functionality developed so far into VS Code at some point, and Mozilla is looking for a developer willing to spend the time needed for this.
The IDE currently supports C/C++ and Rust, but the architecture of the tool will be fully pluggable to support other languages such as Kotlin. The compilation is done on the server but they hope to "do more of this work on the client," as Michael Bebenita, research manager at Mozilla, said in a post.
Besides building and running code, WebAssembly Studio can inspect WASM files created by the IDE or uploaded, generating a WAT file containing the text of a disassembled WASM file. The developer can edit either the WASM or the WAT file. There can be generated also a Call Graph showing the relationships between various functions.
For the near future, Mozilla plans the following:
- Add better support for C/C++/Rust projects. For C/C++ applications we’re currently using the LLVM backend by itself, but we’re also hoping to add support for Emscripten using that backend so that you can use APIs like SDL and OpenGL. For Rust, we’d like to support Cargo.
- Continue to add new features and integrate additional tools into WebAssembly Studio.
- Make it possible to download and build WebAssembly Studio projects locally using familiar tools.
- Improve UX, error reporting, and general performance optimizations.
Developers are invited to take a look at the WebAssembly Studio GitHub repo, and contribute where appropriate, including integrating it with VS Code or Electron.