GraalVM is a universal virtual machine for running applications written in JavaScript, Python, Ruby, R, JVM-based languages like Java, Scala, Clojure, Kotlin, and LLVM-based languages such as C and C++.
The project website at https://www.graalvm.org describes how to get started, how to stay connected, and how to contribute.
The GraalVM main source repository includes the following components:
-
Graal SDK contains long term supported APIs of GraalVM.
-
Graal compiler written in Java that supports both dynamic and static compilation and can integrate with the Java HotSpot VM or run standalone.
-
Truffle language implementation framework for creating languages and instrumentations for GraalVM.
-
Tools contains a set of tools for GraalVM languages implemented with the instrumentation framework.
-
Substrate VM framework that allows ahead-of-time (AOT) compilation of Java applications under closed-world assumption into executable images or shared objects.
-
TRegex is an implementation of regular expressions which leverages GraalVM for efficient compilation of automata.
Each GraalVM component is licensed:
- Truffle and its dependency Graal SDK are licensed under the GPL 2 with Classpath exception.
- Tools project is licensed under the GPL 2 with Classpath exception.
- TRegex project is licensed under the GPL 2 with Classpath exception.
- The Graal compiler is licensed under the GPL 2.
- Substrate VM is licensed under the GPL 2.