Разработчик под ником bmarti644 запустил полноценную Java Virtual Machine прямо в браузере — без серверной части. Проект загружает Alpine Linux с OpenJDK 21 внутри эмулятора QEMU, скомпилированного в WebAssembly.
Результат впечатляет масштабом безрассудства: простой «Hello World» выполняется за 55 секунд. Полная компиляция Java-кода занимает свыше 12 минут при холодном старте.
Как это работает
Система использует несколько слоев виртуализации. QEMU эмулирует процессор x86, внутри которого запускается Alpine Linux с установленной JVM. Весь этот «бутерброд» компилируется в WebAssembly-blob размером 227 МБ и раздается через Cloudflare Workers.
Для ускорения повторных компиляций автор внедрил демон CompileServer, который сохраняется при снапшоте WASM. Это избавляет от полной перезагрузки JVM при каждом запуске javac.
Зачем это нужно
Проект демонстрирует возможности WebAssembly для запуска сложных систем в браузере. Хотя производительность далека от практичной, решение открывает путь для облачных IDE и обучающих платформ, где не требуется устанавливать локальное окружение.
Исходный код доступен на GitHub, есть живое демо для тех, кто готов помучить свой браузер.


