The Kotlin programming language and its compiler, standard library, and build tooling, developed by JetBrains for multiplatform development.
oracle/graal
GraalVM is a Java platform that compiles applications ahead of time into standalone native binaries and includes a JDK usable in IDEs.
- Stars
- 21,735
- Forks
- 1,836
- Open issues
- 895
- Last commit
- 9 hours ago
What is it?
GraalVM compiles Java applications ahead of time into standalone native executables that start quickly, reach peak performance without a warmup phase, and use fewer resources than a conventional JVM run. It can also be used like any other Java Development Kit inside an IDE.
The repository is the main source tree for the project and bundles several components: the Graal compiler, Native Image (the SubstrateVM ahead-of-time framework), Espresso for running Java bytecode on Truffle, and the Truffle language implementation framework. Related repositories provide languages such as JavaScript (GraalJS) and Python (GraalPy), plus build tool plugins and a GitHub Action for setting up GraalVM.
The project is licensed under GPL 2 with the Classpath Exception for the Community Edition, with other components under GPL 2, UPL, or BSD. Documentation lives on the GraalVM website, with sources in the docs directory.
Key features
- 01Compiles Java applications into standalone native executables with Native Image.
- 02Runs without a warmup phase and starts quickly, according to the project's stated goals.
- 03Can be used as a drop-in Java Development Kit in IDEs.
- 04Includes the Graal compiler and the Truffle language implementation framework.
- 05Provides Espresso for running Java bytecode and related language components.
Use cases
- Shipping Java microservices or CLI tools that need fast startup and low memory use.
- Building serverless or container workloads where cold start time matters.
- Embedding other languages such as JavaScript or Python in Java applications via Truffle.
Quick start
- 1
Download GraalVM from the official downloads page or follow the getting-started guide on the GraalVM website
Things to know
- Components are licensed under different terms: most use GPL 2 with the Classpath Exception, some use GPL 2 alone, and others use UPL or BSD.
- Building GraalVM from source requires following the separate instructions in vm/README.md.
Topics
FAQ
- What is graal?
- GraalVM is a Java platform that compiles applications ahead of time into standalone native binaries and includes a JDK usable in IDEs. GraalVM compiles Java applications ahead of time into standalone native executables that start quickly, reach peak performance without a warmup phase, and use fewer resources than a conventional JVM run. It can also be used like any other Java Development Kit inside an IDE.
- Is graal free to use? What license does it have?
- graal is open source under the Other license. Check the license terms before using it in commercial products.
- Is graal still maintained?
- Actively maintained. The last commit to graal was on Oct 21, 2026.
- What can I use graal for?
- Shipping Java microservices or CLI tools that need fast startup and low memory use. Building serverless or container workloads where cold start time matters. Embedding other languages such as JavaScript or Python in Java applications via Truffle.
- How do I install graal?
- Download GraalVM from the official downloads page or follow the getting-started guide on the GraalVM website
- Where can I get graal?
- The source code and installation instructions are on GitHub: https://github.com/oracle/graal
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A C# and .NET CIL to WebAssembly compiler with its own CoreLib, runtime and SDK, producing small standalone WASI Preview 2 components.
A standalone WebAssembly runtime built on the Cranelift code generator, with WASI support and embeddings for multiple languages.
An HTTP client for the JVM, Android, and GraalVM that reuses connections, supports HTTP/2, and caches responses by default.
A free, humorous Chinese-language Java learning guide covering core Java, concurrency, JVM, enterprise development, and interview prep.
A CLI tool that extracts TLS/SSL certificates from servers and exports them as PEM, DER, or truststores.