/graal

GraalVM: Run Programs Faster Anywhere :rocket:

Primary LanguageJava

GraalVM

Join the chat at https://gitter.im/graalvm/home

GraalVM is a universal virtual machine for running applications written in JavaScript, Python, Ruby, R, JVM-based languages like Java, Scala, 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.

Repository Structure

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.

License

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