Mandrel — это последующий дистрибутив версии сообщества GraalVM. Основная цель Mandrel — предоставить версию native-image
специально для поддержки Quarkus. Цель состоит в том, чтобы согласовать возможности native-image
GraalVM с библиотеками OpenJDK и Red Hat Enterprise Linux для повышения удобства сопровождения собственных приложений Quarkus. Лучше всего Mandrel можно охарактеризовать как дистрибутив обычного OpenJDK со специально упакованным построителем Native Image GraalVM ( native-image
).
Релизы Mandrel построены на базе кода, полученного из исходной базы кода GraalVM, с небольшими изменениями, но с некоторыми существенными исключениями. Полный дистрибутив GraalVM — это гораздо больше, чем native-image
: он поддерживает многоязычность, фреймворк Truffle, позволяющий эффективно реализовывать интерпретаторы, серверную часть компилятора LLVM для собственного образа, JIT-компилятор libgraal в качестве замены серверного компилятора C2 Hotspot. и многое другое. Mandrel — это небольшое подмножество той функциональности, которую мы поддерживаем для сценария использования native-image
.
native-image
Mandrel также не включает следующие функции:
--experimental-build-server
.-H:CompilerBackend=llvm
.--libc=musl
.--static
.--language:
.Mandrel также построен несколько иначе, чем GraalVM, с использованием стандартной версии проекта OpenJDK jdk17u. Это означает, что он не получает выгоды от нескольких небольших улучшений, которые Oracle добавила в версию OpenJDK, используемую для создания собственных загрузок GraalVM. Большинство этих улучшений относятся к модулю JVMCI, который позволяет запускать компилятор Graal внутри OpenJDK. Остальные представляют собой небольшие косметические изменения в поведении. Эти улучшения могут в некоторых случаях вызывать незначительные различия в процессе создания собственных изображений. Они не должны приводить к тому, что сами результирующие изображения будут выполняться заметно по-другому.
#mandrel
в рабочей среде graalvm.Сообщайте об уязвимостях безопасности в соответствии с руководством по сообщениям об уязвимостях.
Дистрибутивы Mandrel можно загрузить из релизов репозитория, а образы контейнеров доступны на quay.io.
native-image
Mandrel зависит от следующих пакетов:
В Fedora/CentOS/RHEL их можно установить с помощью:
dnf install glibc-devel zlib-devel gcc freetype-devel libstdc++-static
Примечание . В зависимости от вашей системы пакет может называться glibc-static
или libstdc++-devel
вместо libstdc++-static
. Если в системе отсутствует stdc++, также необходим пакет gcc-c++
.
В Ubuntu-подобных системах с:
apt install g++ zlib1g-dev libfreetype6-dev
Для сборки Mandrel из исходного кода см. mandrel-packaging и проконсультируйтесь со структурой репозитория на сайте CONTRIBUTING.md, чтобы узнать, какую ветку Mandrel использовать.
Расширение возможностей разработки программного обеспечения с помощью инициативы Works on Arm Works on Arm — это стратегическая инициатива, направленная на создание и ускорение экосистемы программного обеспечения для Arm64.
Дистрибутив GraalVM Mandrel, лежащий в основе Quarkus Native, с гордостью причисляет себя к числу библиотек и инструментов, которые успешно использовали ресурсы Works on Arm.