graal README

The project's README from github.com/oracle/graal. As one markdown file: README.md.

GraalVM

GraalVM downloads GraalVM docs GraalVM on Slack GraalVM Gate License GraalVM on LinkedIn GraalVM on X GraalVM on Bluesky GraalVM on Medium GraalVM on YouTube

GraalVM compiles applications ahead of time into standalone binaries that start instantly, provide peak performance with no warmup, and use fewer resources. You can use GraalVM just like any other Java Development Kit in your IDE.

The project website at https://www.graalvm.org/ describes how to get started, how to stay connected, and how to contribute.

Documentation

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. Instructions for building GraalVM from source are in vm/README.md.

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, ….
ci/ Configuration files for internal CI/CD infrastructure.
ci_includes/ Configuration include files for internal CI/CD infrastructure.
compiler/ Graal compiler, a modern, versatile compiler written in Java.
espresso-compiler-stub/ A dummy GraalJVMCICompiler implementation for Espresso.
espresso-shared/ Espresso shared code for runtime class loading.
espresso/ Espresso, a meta-circular Java bytecode interpreter for the GraalVM.
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 Graal Languages implemented with the instrumentation framework.
truffle/ 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.
web-image/ Web Image, an experimental WebAssembly backend for Native Image.

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

Name Description
GraalJS Implementation of JavaScript and Node.js.
GraalPy Implementation of the Python language.
graalvm-reachability-metadata Reachability metadata for open-source libraries.
Native Build Tools Build tool plugins for GraalVM Native Image.
setup-graalvm GitHub Action for GraalVM.
SimpleLanguage A simple example language built with the Truffle framework.
SimpleTool A simple example tool built with the Truffle framework.

Examples and Tutorials

Explore practical examples, deep-dive workshops, and language-specific demos for working with GraalVM.

Name Description
GraalVM Demos Example applications highlighting GraalVM key features and best practices.
GraalVM Workshops and Tutorials Workshops and tutorials to help you learn and apply GraalVM tools and capabilities.
Graal Languages - Demos and Guides Demo applications and guides for GraalJS, GraalPy, GraalWasm, and other Graal Languages.

License

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, Web Image 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

graal (oracle/graal)

Searching Database…

21.7K ·GitHub
What is this?GraalVM is a high-performance JDK whose headline trick is ahead-of-time compilation: it turns applications into standalone native executables that start instantly, need no warmup and use fewer resources.
Is it a compiler I plug into my project, or a full JDK?It is a full JDK — you use GraalVM just like any other JDK in your IDE. This repo holds the core pieces: the Graal compiler, SubstrateVM (the framework behind Native Image AOT compilation) and the Truffle language framework.
How do I get it running?Download a build for Linux, macOS or Windows from graalvm.org and select it as the JDK in your IDE. For CI there is a setup-graalvm GitHub Action, and you can also build it from source.
What do I need to compile my existing Java app into a native executable?Native Build Tools — official Maven and Gradle plugins for Native Image. A companion repo also publishes reachability metadata so popular open-source libraries work under AOT compilation.
Is it fully open source, or is there an Oracle license catch?GraalVM Community Edition is open source under GPLv2 with the Classpath Exception — the same terms as Java itself. Components vary: Truffle, GraalWasm, the SDK and TRegex use the Universal Permissive License, Sulong is 3-clause BSD.
Why compile ahead of time instead of just running on a JVM?Native executables start instantly, hit peak performance with no warmup phase and use fewer compute resources — handy wherever startup time and memory footprint matter.
What is Truffle?The framework in this repo for creating programming languages and tools. GraalJS, GraalPy, Sulong and GraalWasm are built on it, and SimpleLanguage in a related repo is a minimal example language to learn from.
Where can I find examples and tutorials?The GraalVM Demos repo has example applications highlighting key features and best practices, plus workshops, tutorials and language-specific demos and guides for GraalJS, GraalPy and GraalWasm.
Can I look inside the compiler while it works?Yes — the repo includes Ideal Graph Visualizer (IGV) for analyzing Graal compiler graphs, plus tools for Graal languages built on the instrumentation framework.
Creator
oracle
Size
523.6 MB
Stars
21.7K
Age
10y
Commits · 90 Days