|
| 1 | +# Mandrel |
| 2 | + |
| 3 | +Mandrel is a downstream distribution of the GraalVM community edition. |
| 4 | +Mandrel's main goal is to provide a `native-image` release specifically to support [Quarkus](https://quarkus.io). |
| 5 | +The aim is to align the `native-image` capabilities from GraalVM with OpenJDK and Red Hat Enterprise Linux libraries to improve maintainability for native Quarkus applications. |
| 6 | + |
| 7 | +## How Does Mandrel Differ From Graal |
| 8 | + |
| 9 | +Mandrel releases are built from a code base derived from the upstream GraalVM code base, with only minor changes but some significant exclusions. |
| 10 | +They support the same native image capability as GraalVM with no significant changes to functionality. |
| 11 | +They do not include support for Polyglot programming via the Truffle interpreter and compiler framework. |
| 12 | +In consequence, it is not possible to extend Mandrel by downloading languages from the Truffle language catalogue. |
| 13 | + |
| 14 | +Mandrel is also built slightly differently to GraalVM, using the standard OpenJDK project release of jdk11u. |
| 15 | +This means it does not profit from a few small enhancements that Oracle have added to the version of OpenJDK used to build their own GraalVM downloads. |
| 16 | +Most of these enhancements are to the JVMCI module that allows the Graal compiler to be run inside OpenJDK. |
| 17 | +The others are small cosmetic changes to behaviour. |
| 18 | +These enhancements may in some cases cause minor differences in the progress of native image generation. |
| 19 | +They should not cause the resulting images themselves to execute in a noticeably different manner. |
| 20 | + |
| 21 | +## Communication Channels |
| 22 | + |
| 23 | +* [Slack](https://graalvm.slack.com) - Join #mandrel channel |
| 24 | +* [[email protected]](mailto:[email protected]?subject=[MANDREL]) mailing list - Subscribe [here ](https://oss.oracle.com/mailman/listinfo/graalvm-dev) |
| 25 | +* [GitHub issues](https://github.com/graalvm/mandrel/issues) for bug reports, questions, or requests for enhancements. |
| 26 | + |
| 27 | +Please report security vulnerabilities according to the [Reporting Vulnerabilities guide](https://www.oracle.com/corporate/security-practices/assurance/vulnerability/reporting.html). |
| 28 | + |
| 29 | +## Getting Started |
| 30 | + |
| 31 | +Mandrel distributions can be downloaded from [the repository's releases](https://github.com/graalvm/mandrel/releases) |
| 32 | + |
| 33 | +### Prerequisites |
| 34 | + |
| 35 | +Mandrel's `native-image` depends on the following packages: |
| 36 | +* glibc-devel |
| 37 | +* zlib-devel |
| 38 | +* gcc |
| 39 | +* libffi-devel |
| 40 | + |
| 41 | +On Fedora/CentOS/RHEL they can be installed with: |
| 42 | +```bash |
| 43 | +dnf install glibc-devel zlib-devel gcc libffi-devel |
| 44 | +``` |
| 45 | + |
| 46 | +### Building Mandrel From Source |
| 47 | + |
| 48 | +For building Mandrel from source please see [mandrel-packaging](https://github.com/graalvm/mandrel-packaging) |
| 49 | + |
| 50 | +## Repository Structure |
| 51 | + |
| 52 | +Mandrel shares the same repository structure with Graal, please see (README.md#repository-structure). |
| 53 | + |
0 commit comments