Welcome to the maintenance repository of GraalVM Community Edition for JDK 21. This is a source-only repository maintained by the GraalVM community.
GraalVM is a high-performance JDK distribution designed to accelerate the execution of applications written in Java and other JVM languages along with support for JavaScript, Ruby, Python, and a number of other popular languages. To get the latest GraalVM version visit the GraalVM website.
Please refer to:
- BUILDING.md for instructions on how to build GraalVM Community Edition for JDK 21.
- CONTRIBUTING.md for information on how to contribute to this repository.
- MAINTAINING.md for information on how to maintain this repository.
The project website at https://www.graalvm.org/ describes how to get started, how to stay connected, and how to contribute.
Please refer to the GraalVM website for documentation. You can find most of the documentation sources in the docs/ directory in the same hierarchy as displayed on the website. Additional documentation including developer instructions for individual components can be found in corresponding docs/ sub-directories. The documentation for the Truffle framework, for example, is in truffle/docs/.
- Open a GitHub issue for backport requests or bug reports.
- Join the
#community-lts
channel in the GraalVM Slack workspace to connect with the community. - Report a security vulnerability according to the Reporting Vulnerabilities guide.
This source repository is the main repository for GraalVM and includes the following components:
Directory | Description |
---|---|
.devcontainer/ |
Configuration files for GitHub dev containers. |
.github/ |
Configuration files for GitHub issues, workflows, …. |
compiler/ |
Graal compiler, a modern, versatile compiler written in Java. |
espresso/ |
Espresso, a meta-circular Java bytecode interpreter for the GraalVM. |
java-benchmarks/ |
Java benchmarks. |
regex/ |
TRegex, a regular expression engine for other GraalVM languages. |
sdk/ |
GraalVM SDK, long-term supported APIs of GraalVM. |
substratevm/ |
Framework for ahead-of-time (AOT) compilation with Native Image. |
sulong/ |
Sulong, an engine for running LLVM bitcode on GraalVM. |
tools/ |
Tools for GraalVM languages implemented with the instrumentation framework. |
truffle/ |
GraalVM's language implementation framework for creating languages and tools. |
visualizer/ |
Ideal Graph Visualizer (IGV), a tool for analyzing Graal compiler graphs. |
vm/ |
Components for building GraalVM distributions. |
wasm/ |
GraalWasm, an engine for running WebAssembly programs on GraalVM. |
GraalVM Community Edition is open source and distributed under version 2 of the GNU General Public License with the “Classpath” Exception, which are the same terms as for Java. The licenses of the individual GraalVM components are generally derivative of the license of a particular language (see the table below).
Component(s) | License |
---|---|
Espresso, Ideal Graph Visualizer | GPL 2 |
GraalVM Compiler, SubstrateVM, Tools, VM | GPL 2 with Classpath Exception |
GraalVM SDK, GraalWasm, Truffle Framework, TRegex | Universal Permissive License |
Sulong | 3-clause BSD |