ARM64JS boots a real Linux distribution in a browser tab without relying on a remote server. The project uses WebAssembly to emulate the hardware needed to start 64-bit Arm Alpine Linux. Visitors can try a shell, text-based applications and even Docker images, though the latter run slowly.

Psst!Add AlexTech.ai asPreferred Source on Google

The project was introduced on Reddit on October 3 by its developer, who describes it as an ARMv8-A system emulator written in Rust. The idea is to make it easier to try small command-line tools: instead of installing them on a computer, users open a webpage and work inside Linux. The developer notes that a modern web app can often require more resources than the tool someone wants to test.

The browser emulates the machine, not a remote terminal

ARM64JS does not stream the screen of a Linux computer connected to the internet. It emulates a virtual machine in the browser and boots an unmodified Linux system, which behaves as though it were running on Arm hardware. That approach makes ordinary Linux tools available, including the shell and Alpine's apk package manager.

WebAssembly, often shortened to WASM, is a format that lets browsers run compiled code. Here it hosts the emulator written in Rust, a programming language. The ARM64JS website lets visitors try the environment; the Demoshell gallery collects examples of text-based applications running in virtual machines. Demoshell is designed to put interactive software demos directly in the browser, without a server running the demo.

Internet access and performance come with practical limits

A browser does not let a webpage make network requests without restrictions. These include CORS, which controls which sites can share resources, and the lack of direct access to TCP connections. The developer says internet access and package downloads through apk therefore need a supporting mechanism. The available description cuts off before explaining how it works, so its implementation cannot be specified.

Docker can also run, but the developer warns that it is slow. ARM64JS is therefore best suited to exploring a shell or trying a text-based application without setting up a local Linux environment. The same idea of bringing complex software into a browser has also appeared in projects such as running the Morrowind engine through WebAssembly, but here the browser hosts an entire Linux system rather than a single application.