РАЗРАБОТКА

Разработчик запустил JVM в браузере через QEMU и WebAssembly

Энтузиаст запустил полноценную Java-машину в браузере без сервера. Alpine Linux + OpenJDK 21 в QEMU, скомпилированном в WebAssembly.

✍️ Редакция iTech News | 03.03.2026 | ⏱ 1 мин | 👁 1 | Источник: Reddit r/programming
📜

Пользователь bmarti644 создал проект, который запускает Java-код прямо в браузере без серверной части. Система загружает Alpine Linux с OpenJDK 21 через QEMU, скомпилированный в WebAssembly — всё это работает внутри одной вкладки браузера.

Производительность далека от идеала: вывод «Hello World» занимает 55 секунд. Но разработчик решил проблему медленного старта компилятора — создал демон CompileServer, который сохраняется между сессиями благодаря снимкам WASM. Теперь не нужно ждать 12+ минут холодного старта javac при каждой компиляции.

Архитектурно это выглядит так: полная Linux-система внутри виртуальной машины QEMU, которая работает как WebAssembly-модуль в браузере. Размер итогового WASM-файла — 227 МБ, он раздаётся через Cloudflare Worker.

Зачем это нужно?

Проект демонстрирует возможности WebAssembly для запуска сложных системных приложений без установки. Потенциально это открывает путь к браузерным IDE для Java или образовательным платформам, где студенты смогут писать код без настройки окружения.

Исходный код доступен на GitHub, есть живая демо-версия для тех, кто хочет проверить возможности своего браузера на прочность.

Поделиться: Telegram X LinkedIn