This is to document and get feedback on WASM support in rootshell. I've landed initial support that allows you to cross compile elsewhere to WASI, copy the resulting binary to the rootshell iOS local shell and then run it. Support exists for sandboxed filesystem read/write access, TCP sockets, DNS, and TLS/HTTPS network requests. Sessions can run cooked or raw. This is going to need to be strictly framed using the Educational use exception for App Store purposes. Bundling of package managers for pre-compiled WASM binaries may be a step too far. I plan on working to get a minimal version approved before spending too much time on something that might just be rejected. (Even though other apps like a-Shell already leverage WASM in a terminal type environment.)
I did a demo port of outside which is a rust TUI weather application. It was fairly small to do as an initial port and exercises filesystem and network access in a raw mode session. This repo is also GPL which we otherwise cannot directly bundle in the binary on the App Store as well.
I will get a repo up that documents the compilation steps, and how the network primitives work. I have demos working so far in both rust and go. Note that the "system calls" for network access have to go through an expensive bridge. This port is smaller than a hello world in go which comes out above 2MB and is noticeably slower to launch.
-rwxr-xr-x 1 kit staff 1.3M May 11 16:47 outside.wasm*
Link to WASM port is here.

This is to document and get feedback on WASM support in rootshell. I've landed initial support that allows you to cross compile elsewhere to WASI, copy the resulting binary to the rootshell iOS local shell and then run it. Support exists for sandboxed filesystem read/write access, TCP sockets, DNS, and TLS/HTTPS network requests. Sessions can run cooked or raw. This is going to need to be strictly framed using the Educational use exception for App Store purposes. Bundling of package managers for pre-compiled WASM binaries may be a step too far. I plan on working to get a minimal version approved before spending too much time on something that might just be rejected. (Even though other apps like a-Shell already leverage WASM in a terminal type environment.)
I did a demo port of outside which is a rust TUI weather application. It was fairly small to do as an initial port and exercises filesystem and network access in a raw mode session. This repo is also GPL which we otherwise cannot directly bundle in the binary on the App Store as well.
I will get a repo up that documents the compilation steps, and how the network primitives work. I have demos working so far in both rust and go. Note that the "system calls" for network access have to go through an expensive bridge. This port is smaller than a hello world in go which comes out above 2MB and is noticeably slower to launch.
Link to WASM port is here.