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
Что это такое?GraalVM — это высокопроизводительная JDK, главная фишка которой — компиляция заранее (ahead-of-time): она превращает приложения в самостоятельные нативные исполняемые файлы, которые запускаются мгновенно, не требуют разогрева и расходуют меньше ресурсов.
Это компилятор, который я подключаю к своему проекту, или полноценная JDK?Это полноценная JDK — GraalVM используется в IDE так же, как любая другая JDK. В этом репозитории лежат основные компоненты: компилятор Graal, SubstrateVM (фреймворк, на котором основана AOT-компиляция Native Image) и фреймворк языков Truffle.
Как это запустить?Скачайте сборку для Linux, macOS или Windows с graalvm.org и выберите её как JDK в своей IDE. Для CI есть GitHub Action setup-graalvm, а ещё можно собрать GraalVM из исходников.
Что нужно, чтобы скомпилировать моё существующее Java-приложение в нативный исполняемый файл?Native Build Tools — официальные плагины для Maven и Gradle для работы с Native Image. В соседнем репозитории также публикуются метаданные достижимости (reachability metadata), благодаря которым популярные open-source библиотеки работают при AOT-компиляции.
Это полностью open source или есть подвох с лицензией Oracle?GraalVM Community Edition — open source под GPLv2 с Classpath Exception, на тех же условиях, что и сама Java. Отдельные компоненты различаются: Truffle, GraalWasm, SDK и TRegex используют Universal Permissive License, а Sulong — 3-clause BSD.
Зачем компилировать заранее, а не просто запускать на JVM?Нативные исполняемые файлы запускаются мгновенно, сразу выходят на пиковую производительность без фазы разогрева и потребляют меньше вычислительных ресурсов — это удобно везде, где важны время старта и потребление памяти.
Что такое Truffle?Фреймворк из этого репозитория для создания языков программирования и инструментов. На нём построены GraalJS, GraalPy, Sulong и GraalWasm, а SimpleLanguage в соседнем репозитории — минимальный пример языка, на котором можно учиться.
Где найти примеры и туториалы?В репозитории GraalVM Demos есть примеры приложений, показывающие ключевые возможности и лучшие практики, а также воркшопы, туториалы и демо с руководствами по конкретным языкам — для GraalJS, GraalPy и GraalWasm.
Можно ли заглянуть внутрь компилятора во время его работы?Да — в репозиторий входит Ideal Graph Visualizer (IGV) для анализа графов компилятора Graal, а также инструменты для Graal-языков, построенные на фреймворке инструментирования.
Creator
oracle
Size
523.6 MB
Stars
21.7K
Age
10y
Commits · 90 Days