For the WebAssembly audience I wanted to discuss the many features I've integrated into my desktop environment which use WebAssembly. Here is a list in no particular order:
x86 Emulation via v86
I support dragging
.img files into the app which can be ran on v86. It also comes loaded with Kolibri and Linux. When an app is closed a snapshot of the current state is saved to
/Users/Public/Snapshots which is automatically loaded the next time the same image is opened.
DOS Emulation via js-dos
For this app you can open any
.jsdos file in it. If you don't provide a jsdos config file it will boot to the command prompt. I have some preloaded DOS shareware games such as Doom and Duke Nukem 3D. Like v86 it will save snapshots on close and reload them on reopen, but instead of loading the emulator state it just loads the directory contents such as save games.
WINE (16/32-bit) via Boxedwine
This also supports
.zip files and will try and run
.exe too. It can run various apps as BoxedWine shows on their Apps and Games page. As an example I downloaded the latest
32-bit x86 Portable (zip) version of Notepad++, shown below.
Flash Emulation via Ruffle
7z/RAR/TAR Extraction via Libarchivejs
.iso mounting through non-WebAssembly methods, so to handle
.tar.gz I've added Libarchive.js. Extracting is done from the right click context menu on each file.
Audio/Video Conversion via ffmpeg.wasm
Currently only supporting single thread because of the SharedArrayBuffer limitation and my desire to not deal with CORS issues. For video you can convert
.wmv. For audio it supports converting
.wma. These conversion options can be access via the context menu on each file.
Image Conversion via WASM-ImageMagick
Similar to audio/video, I support various formats of images that can be converted. They are
Python via Pyodide
I've added support to run
.py scripts in the terminal. It's also possible to open the Terminal directly and run a command such as
py import sys; sys.version to see the same result as this example script.
WASI Modules via Wasmer JS
Space Cadet via SpaceCadetPinball
Finally for a blast from the past I've added 3D Pinball Space Cadet which has been ported to many platforms including to WebAssembly.
Thanks for checking out my post/app!!! If you'd like to follow my progress as I continue to play with all things web/dev, please check out my YouTube channel. Here is my latest video where I discuss progress on this app: