Mandrel es una distribución posterior de la edición comunitaria GraalVM. El objetivo principal de Mandrel es proporcionar una versión native-image
específicamente para soportar Quarkus. El objetivo es alinear las capacidades native-image
de GraalVM con las bibliotecas OpenJDK y Red Hat Enterprise Linux para mejorar la capacidad de mantenimiento de las aplicaciones nativas de Quarkus. Mandrel se puede describir mejor como una distribución de un OpenJDK normal con un generador de imágenes nativas GraalVM especialmente empaquetado ( native-image
).
Las versiones de Mandrel se crean a partir de una base de código derivada del código base de GraalVM, con solo cambios menores pero algunas exclusiones significativas. Una distribución completa de GraalVM es mucho más que native-image
: tiene soporte políglota, el marco Truffle que permite una implementación eficiente de intérpretes, un compilador LLVM back-end para imágenes nativas, el compilador libgraal JIT como reemplazo del compilador del servidor C2 de Hotspot. y mucho más. Mandrel es el pequeño subconjunto de esa funcionalidad que admitimos para el caso de uso native-image
.
native-image
de Mandrel tampoco incluye las siguientes características:
--experimental-build-server
.-H:CompilerBackend=llvm
.--libc=musl
.--static
.--language:
.Mandrel también está construido de manera ligeramente diferente a GraalVM, utilizando la versión estándar del proyecto OpenJDK de jdk17u. Esto significa que no se beneficia de algunas pequeñas mejoras que Oracle ha agregado a la versión de OpenJDK utilizada para crear sus propias descargas de GraalVM. La mayoría de estas mejoras se aplican al módulo JVMCI que permite ejecutar el compilador Graal dentro de OpenJDK. Los demás son pequeños cambios cosméticos de comportamiento. En algunos casos, estas mejoras pueden causar diferencias menores en el progreso de la generación de imágenes nativas. No deberían provocar que las imágenes resultantes se ejecuten de una manera notablemente diferente.
#mandrel
en el espacio de trabajo de Slack de graalvmInforme las vulnerabilidades de seguridad de acuerdo con la guía Informes de vulnerabilidades.
Las distribuciones de mandril se pueden descargar desde las versiones del repositorio y las imágenes de los contenedores están disponibles en quay.io.
native-image
de Mandrel depende de los siguientes paquetes:
En Fedora/CentOS/RHEL se pueden instalar con:
dnf install glibc-devel zlib-devel gcc freetype-devel libstdc++-static
Nota : El paquete podría llamarse glibc-static
o libstdc++-devel
en lugar de libstdc++-static
dependiendo de su sistema. Si al sistema le falta stdc++, también se necesita el paquete gcc-c++
.
En sistemas tipo Ubuntu con:
apt install g++ zlib1g-dev libfreetype6-dev
Para construir Mandrel desde la fuente, consulte mandrel-packaging y consulte la Estructura del repositorio en CONTRIBUTING.md sobre qué rama de Mandrel usar.
Potenciar el desarrollo de software con la iniciativa Works on Arm Works on Arm es una iniciativa estratégica para habilitar y acelerar el ecosistema de software para Arm64.
La distribución Mandrel de GraalVM que impulsa Quarkus Native se enorgullece de contarse entre las bibliotecas y herramientas que aprovecharon con éxito los recursos de Works on Arm.