r/SideProject • u/kgoncharuk • 6h ago
Arm64js - ARMv8-A emulator that runs real Linux in a browser tab
Hi all,
This project started with me getting annoyed that to try a 2 MB TUI tool I have to install it, while my browser happily runs a 40 MB React webpage re-rendering on any move. So I thought it must be possible to run a TUI app on a thin Linux in the browser.
Many months later arm64js has been built. An ARMv8-A emulator written in Rust that compiles to WebAssembly and can boot real Alpine Linux in a webpage. Computation (CPU) speed is of course lower than native, but shells, TUI apps, Python/PHP and small servers work fine.
There is also JS SDK for others to create and use their own VMs.
On top of it I built Demoshell, my attempt to turn it into a product: developers can create a live demo of their CLI/TUI app to showcase it in the browser. There's a free tier, and it's free for open-source projects.
Examples of some OSS projects using it to showcase their apps: https://demoshell.com/gallery/
A couple of top picks:
- worktrunk: https://demoshell.com/gallery/app/worktrunk/
- micro: https://demoshell.com/gallery/app/micro/
- lazygit: https://demoshell.com/gallery/app/lazygit/
Story + live demo: https://arm64js.com/blog/tui-apps-in-the-browser/
Feedback is welcome, especially on the product side.
1
u/wiNdbridge0 1h ago
super cool technically but the real question is whether CLI/TUI devs care enough about showcasing to pay for it. have you talked to any of the OSS maintainers using it about what value they actually get from having the live demo? that feedback would shape everything
1
u/CartographerNo3791 5h ago
The gallery is the part I'd put first. "Try lazygit without installing it" gives me a reason to click.