CheerpJ на базе Wasm запускает Java в веб-браузерах

WebAssembly JVM обещает запускать «очень большие» немодифицированные Java-приложения в современных браузерах без плагинов или установки Java.

Leaning Technologies выпустила CheerpJ 3.0, JVM на основе WebAssembly, которая работает в современных веб-браузерах. CheerpJ 3.0 — это полностью переписанная версия CheerpJ, поддерживающая «очень крупные» Java-приложения, такие как IntelliJ IDEA и Minecraft. Об этом написали в анонсе 1 февраля.

CheerpJ компилирует байт-код Java в JavaScript, используя JIT-компилятор (just-in-time) для байт-кода Java. В его состав входит полная и неизменная сборка OpenJDK, а также виртуализированный системный слой, включая виртуализированные файловые системы и поддержку виртуализированных сетей с использованием Tailscale. Ключевые возможности CheerpJ 3.0 включают:

  • Запуск крупных, неизмененных Java-приложений в браузерах без плагинов или установки Java.
  • Серверная часть не требуется.
  • Работает с неизмененными файлами JAR (Java Archive), без необходимости компиляции или предварительной обработки.
  • Поддерживает рефлексию и загрузчики классов.
  • Взаимодействие с JavaScript.

На данный момент CheerpJ 3.0 ограничен поддержкой Java 8. Однако одной из основных причин создания новой архитектуры было желание поддерживать несколько версий Java и времени выполнения. Leaning Technologies планирует добавить поддержку более современных версий Java LTS (Long-Term Support) позднее в 2024 году, начиная с Java 11. Долгосрочные цели включают достижение паритета с самой последней версией Java LTS, которая в настоящее время является JDK 21.

Заменяя версию CheerpJ 2.3 2022 года как долгосрочно поддерживаемую версию от Leaning Technologies, CheerpJ 3.0 опирается на уроки, извлеченные из семилетнего использования CheerpJ в корпоративной сфере и сообществом, а также из других проектов на основе WebAssembly, таких как CheerpX, система виртуализации с x86 на WebAssembly.

Ранее

Читайте также
18 репозиториев GitHub, которые должен знать каждый разработчик
18 репозиториев GitHub, которые должен знать каждый разработчик
18 репозиториев GitHub, которые должен знать каждый разработчик

Рассказываем о 18 репозиториях GitHub, которые обязательно нужно занести в закладки. Они помогут вам на пути к кодингу.

Бета-версия TypeScript 5.5
Бета-версия TypeScript 5.5
Бета-версия TypeScript 5.5

В конце апреля стала доступна Бета-версия TypeScript 5.5.

Облачный сервис Azul находит «мертвый» код в Java-приложениях
Облачный сервис Azul находит «мертвый» код в Java-приложениях
Облачный сервис Azul находит «мертвый» код в Java-приложениях

Azul описывает «мертвый» код как исходный код, находящийся в кодовой базе приложения, но не используемый им.

Стандартизация сигналов в JavaScript
Стандартизация сигналов в JavaScript
Стандартизация сигналов в JavaScript

Подобно Промисам которые прошли стандартизацию Promises TC39 в ES2015 зарождается новый стандарт для управление реактивностью с помощью Signals.