About: 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++. Community edition.
  Fossies Dox: graal-vm-  ("unofficial" and yet experimental doxygen-generated source code documentation)  

graal-vm Documentation

Some Fossies usage hints in advance:

  1. To see the Doxygen generated documentation please click on one of the items in the steelblue colored "quick index" bar above or use the side panel at the left which displays a hierarchical tree-like index structure and is adjustable in width.
  2. If you want to search for something by keyword rather than browse for it you can use the client side search facility (using Javascript and DHTML) that provides live searching, i.e. the search results are presented and adapted as you type in the Search input field at the top right.
  3. Doxygen doesn't incorporate all member files but just a definable subset (basically the main project source code files that are written in a supported language). So to search and browse all member files you may visit the Fossies graal-vm- contents page and use the Fossies standard member browsing features (also with source code highlighting and additionally with optional code folding).


GraalVM downloads GraalVM docs GraalVM on Slack GraalVM on Twitter GraalVM on YouTube GraalVM Gate License

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.

The project website at 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/. This also applies to languages, tools, and other components maintained in related repositories.

Get Support

Repository Structure

This source repository is the main repository for GraalVM and includes the following components:

Directory Description
.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.
vm/ Components for building GraalVM distributions.
wasm/ GraalWasm, an engine for running WebAssembly programs on GraalVM.

GraalVM provides additional languages, tools, and other components developed in related repositories. These are:

Name Description
FastR Implementation of the R language.
GraalJS Implementation of JavaScript and Node.js.
GraalPython Implementation of the Python language.
GraalVM Demos Several example applications illustrating GraalVM capabilities.
Native Build Tools Build tool plugins for GraalVM Native Image.
SimpleLanguage A simple example language built with the Truffle framework.
SimpleTool A simple example tool built with the Truffle framework.
TruffleRuby Implementation of the Ruby language.
VS Code Extensions VS Code extensions for 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). GraalVM Community is free to use for any purpose - no strings attached.

Component(s) License
Espresso 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