Polyglot Embedding Demo with GraalVM
June 19, 2024 ยท View on GitHub
Demonstration repository showing polyglot embedding with GraalVM using Maven and Gradle. It contains a simple Main and Test class to bootstrap a polyglot embedding project.
For demonstration showing polyglot native embedding with GraalVM using Maven, see
the Native embedding Maven project located in the native-embedding subdirectory.
For more details on polyglot embedding please see the docs: https://www.graalvm.org/latest/reference-manual/embed-languages/
Setup
Download GraalVM and point the JAVA_HOME environment variable to it.
Maven Usage
Download Maven or import as Maven project into your IDE.
mvn packagebuild usingjavac. Starting from GraalVM Polyglot API version 24.1.0, you can usemvn -Pisolated packageto build with the native isolate version of a guest language. By default, only the native isolate library for the current platform is installed. To install native isolate libraries for all supported platforms, usemvn -Pisolated -Disolated.all.platforms package.mvn testto run the testsmvn exec:execto run the application. Starting from GraalVM Polyglot API version 24.1.0, you can usemvn -Pisolated exec:execto embed the native isolate version of a guest language.mvn -Pnative packageto build a native-imagemvn -Passembly packageto build an uber JAR containing all dependencies using the Maven Assembly Plugin. The resulting JAR can be executed usingjava -jar embedding-1.0-SNAPSHOT-jar-with-dependencies.jar. We do recommend not using shading whenever possible.mvn -Pshade packageto build an uber JAR containing all dependencies using the Maven Shade Plugin. The resulting JAR can be executed usingjava -jar embedding-1.0-SNAPSHOT.jar. We do recommend not using shading whenever possible.
Please see the pom.xml file for further details on the configuration.
Gradle Usage
Download Gradle or import as Maven project into your IDE.
gradle buildbuild using javacgradle runto run the Main applicationgradle testto run the testsgradle nativeCompileto build a native-imagegradle nativeRunto run the native image
Please see the build.gradle.kts file for further details on the configuration.