Virtual Machine for the Web
Find a file
Yuri Iozzelli d0e3852b59 lazy load go wasm module only when logging in
To avoid waiting too much for the go module download and initialization,
and being considered an unwanted popup

Issue: the login window is blocked as a popup
2022-10-05 09:31:21 +02:00
assets Add tower.png asset 2022-10-05 09:31:20 +02:00
examples Initial commit 2022-01-31 22:00:49 +01:00
tun lazy load go wasm module only when logging in 2022-10-05 09:31:21 +02:00
xterm Initial commit 2022-01-31 22:00:49 +01:00
favicon.ico Initial commit 2022-01-31 22:00:49 +01:00
index.html lazy load go wasm module only when logging in 2022-10-05 09:31:21 +02:00
login.html lazy load go wasm module only when logging in 2022-10-05 09:31:21 +02:00
network_modal.js WIP network modal 2022-10-05 09:31:20 +02:00
nginx.conf Initial commit 2022-01-31 22:00:49 +01:00
README.md Update README.md - add Linux ABI compatibility 2022-02-03 12:49:23 +01:00

WebVM

This repository hosts the source code of the https://webvm.io live demo page.

WebVM is a server-less virtual environment running fully client-side in HTML5/WebAssembly. It's designed to be Linux ABI-compatible. In this demo, it runs an unmodified Debian distribution including many native development toolchains.

WebVM is powered by the CheerpX virtualization engine, and enables safe, sandboxed client-side execution of x86 binaries on any browser. CheerpX includes an x86-to-WebAssembly JIT compiler, a virtual block-based file system, and a Linux syscall emulator.

For more information: https://medium.com/leaningtech/webvm-client-side-x86-virtual-machines-in-the-browser-40a60170b361

Bugs and Issues

Please use Issues to report any bug.

Browsers support


Chrome

Edge

Safari

Firefox
✔️ ✔️ ✔️ ✔️

WebVM and CheerpX are compatible with any browser, both on Desktop (Chrome/Chromium, Edge, Firefox, Safari), and Mobile (Chrome, Safari), provided support for SAB is present, and the device has sufficient memory.

Other

This project depends on xterm.js (https://xtermjs.org/) and on its add-on xterm-addon-fit

To update the xterm-related files do:

mkdir build
cd build
npm install --save xterm
npm install --save xterm-addon-fit
cd ../xterm
cp ../build/node_modules/xterm/lib/xterm.js .
cp ../build/node_modules/xterm/css/xterm.css .
cp ../build/node_modules/xterm-addon-fit/lib/xterm-addon-fit.js .
cd ..
rm -r build

License

Copyright (c) Leaning Technologies Limited. All rights reserved.