Virtual Machine for the Web
Find a file
2022-10-05 09:31:39 +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 tailscale_tun.js: use WebAssembly.instatiate to avoid requiring MIME types 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 Frontend: remove box 2022-10-05 09:31:39 +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
scrollbar.css Scrollbar 2022-10-05 09:31:39 +02:00
tower.ico Move favicon to red tower on black background 2022-10-05 09:31:39 +02: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.