|
| 1 | +--- |
| 2 | +layout: post |
| 3 | +title: 'Mandrel 25 is Here!' |
| 4 | +date: 2025-10-02 |
| 5 | +tags: release, mandrel, native, graalvm |
| 6 | +synopsis: 'Mandrel 25, based on GraalVM 25, has been released.' |
| 7 | +author: sgehwolf |
| 8 | +--- |
| 9 | + |
| 10 | +We are thrilled to announce the official release of Mandrel 25! The beginning |
| 11 | +of the next LTS version of the Quarkus native builder. |
| 12 | + |
| 13 | +Mandrel 25 is a downstream distribution of the |
| 14 | +https://www.graalvm.org/release-notes/JDK_25[GraalVM 25] Community Edition. |
| 15 | +Mandrel's main goal is to provide a native-image release specifically tailored |
| 16 | +to support https://quarkus.io[Quarkus]. The aim is to align the native-image |
| 17 | +capabilities from GraalVM with OpenJDK and Red Hat Enterprise Linux libraries |
| 18 | +to improve maintainability for native Quarkus applications. As such, Mandrel 25 |
| 19 | +is the same as GraalVM 25 native-image with some small differences. It's built |
| 20 | +from the same code-base! |
| 21 | + |
| 22 | +[[what-is-new-25]] |
| 23 | +== What's New in GraalVM 25? |
| 24 | + |
| 25 | +While there are too many new features added in GraalVM 25 to name them all it's |
| 26 | +worth highlighting a few. GraalVM 25 includes enhanced support for Foreign |
| 27 | +Function and Memory API in native-image. It enables FFM API support for MacOSX |
| 28 | +Aarch64 and Linux Aarch64 (in addition to Linux x86_64). GraalVM 25 also |
| 29 | +enhances metadata support in native-image. It now throws subclasses of |
| 30 | +LinkageError when missing metadata is being detected at native image runtime. |
| 31 | +This way it enables users to handle missing metadata registrations in a more |
| 32 | +efficient way. |
| 33 | + |
| 34 | +[[based-on-openjdk-25]] |
| 35 | +=== Mandrel 25 is Based on OpenJDK 25 |
| 36 | + |
| 37 | +Mandrel 25 is based on the new vanilla Eclipse Temurin 25 LTS release. Temurin |
| 38 | +is an OpenJDK distribution produced at Eclipse. Based on the next LTS release |
| 39 | +of OpenJDK, Mandrel 25 will be the next LTS version supporting Quarkus' native |
| 40 | +compilation capabilities for the Quarkus releases to come. |
| 41 | + |
| 42 | +[[new-monitoring-features]] |
| 43 | +=== New Monitoring Features |
| 44 | + |
| 45 | +GraalVM 25 also introduces several new features in the monitoring area of |
| 46 | +native-image that have been contributed by Red Hat/IBM. Some highlights in JDK |
| 47 | +Flight Recorder support (https://www.graalvm.org/jdk25/reference-manual/native-image/debugging-and-diagnostics/JFR/[JFR]), and https://www.graalvm.org/jdk25/reference-manual/native-image/debugging-and-diagnostics/NMT/[native memory tracking] (NMT) are: |
| 48 | + |
| 49 | +* **JCMD support:** GraalVM 25 adds support for the https://www.graalvm.org/jdk25/reference-manual/native-image/debugging-and-diagnostics/jcmd/[Java Diagnostic Command] |
| 50 | + (JCMD) to native-image. This is useful to asynchronously request specific |
| 51 | +actions on the running native image. For example a thread dump or a JFR |
| 52 | +recording can be requested after the application has been started. |
| 53 | +* **Added support for more JFR events:** Additional JFR events have been added, |
| 54 | + specifically tracking native memory when monitoring option NMT is enabled as |
| 55 | +well. Object allocation sampling with the jdk.ObjectAllocationSample event is |
| 56 | +now also supported. For a list of all supported JFR events see the https://www.graalvm.org/jdk25/reference-manual/native-image/debugging-and-diagnostics/JFR/#built-in-events[upstream |
| 57 | +documentation]. |
| 58 | +* **Native Memory Tracking:** A new monitoring option for https://www.graalvm.org/jdk25/reference-manual/native-image/debugging-and-diagnostics/NMT/[tracking native |
| 59 | + memory], NMT, has been added to native-image. This is useful to diagnose |
| 60 | +memory leaks. |
| 61 | + |
| 62 | +[[getting-started-25]] |
| 63 | +== Get Started with Mandrel 25 Today! |
| 64 | + |
| 65 | +Ready to experience the power of Mandrel 25? |
| 66 | + |
| 67 | +* **Download Mandrel 25:** You can download the latest version from the https://github.com/graalvm/mandrel/releases/tag/mandrel-25.0.0.1-Final[Mandrel |
| 68 | + release page] on Github or install it using https://sdkman.io/[sdkman] by running: |
| 69 | +[source,bash] |
| 70 | +---- |
| 71 | +sdk install java 25.0.0.1.r25-mandrel |
| 72 | +---- |
| 73 | +* **Builder Image with Quarkus:** Alternatively start using the Mandrel 25 |
| 74 | + builder image for your quarkus application by specifying |
| 75 | +`-Dquarkus.native.builder-image=quay.io/quarkus/ubi9-quarkus-mandrel-builder-image:jdk-25` |
| 76 | +to your maven build. |
| 77 | + |
| 78 | +[[quarkus-compatibility-mandrel-25]] |
| 79 | +== Quarkus Compatibility |
| 80 | + |
| 81 | +It's recommended to use at least Quarkus release 3.27.0 when using the Mandrel 25 |
| 82 | +native builder. For older versions of Quarkus use the Mandrel 23.1 native |
| 83 | +builder. |
| 84 | + |
| 85 | +[[graalvm-community-gratitude]] |
| 86 | +== Shout Out to GraalVM Community |
| 87 | + |
| 88 | +We are very grateful for the immense support from the upstream GraalVM |
| 89 | +community, especially the Oracle GraalVM team for stewarding and sponsoring the |
| 90 | +development of GraalVM as well as for accepting Mandrel under the GraalVM |
| 91 | +organization. Onward to more collaboration with the community as the next |
| 92 | +version of GraalVM unfolds! |
| 93 | + |
| 94 | +We are incredibly excited about Mandrel 25 and will be making it the default |
| 95 | +native image generator in an upcoming Quarkus release. In the meantime, do let |
| 96 | +us know your experience of using Mandrel 25 with Quarkus! |
| 97 | + |
| 98 | +You can share your feedback with us in Quarkus' https://quarkusio.zulipchat.com/[Zulip chat workspace] or on https://github.com/quarkusio/quarkus/[GitHub]. |
0 commit comments