GraalVM ist eine leistungsstarke JDK-Distribution, die Ihre Java-Anwendungen vorab in eigenständige Binärdateien kompiliert. Diese Binärdateien starten sofort, bieten Spitzenleistung ohne Aufwärmphase und verbrauchen weniger Ressourcen. Sie können GraalVM wie jedes andere Java Development Kit in Ihrer IDE verwenden.
Auf der Projektwebsite unter https://www.graalvm.org/ wird beschrieben, wie Sie beginnen, in Verbindung bleiben und einen Beitrag leisten können.
Die Dokumentation finden Sie auf der GraalVM-Website. Die meisten Dokumentationsquellen finden Sie im Verzeichnis docs/ in derselben Hierarchie wie auf der Website angezeigt. Zusätzliche Dokumentation einschließlich Entwickleranweisungen für einzelne Komponenten finden Sie in den entsprechenden Dokumenten/ Unterverzeichnissen. Die Dokumentation für das Truffle-Framework befindet sich beispielsweise in truffle/docs/ . Dies gilt auch für Sprachen, Tools und andere Komponenten, die in zugehörigen Repositorys verwaltet werden.
Dieses Quell-Repository ist das Haupt-Repository für GraalVM und umfasst die folgenden Komponenten:
Verzeichnis | Beschreibung |
---|---|
.devcontainer/ | Konfigurationsdateien für GitHub-Entwicklungscontainer. |
.github/ | Konfigurationsdateien für GitHub-Probleme, Workflows, …. |
compiler/ | Graal-Compiler, ein moderner, vielseitiger Compiler, der in Java geschrieben ist. |
espresso/ | Espresso, ein metazirkulärer Java-Bytecode-Interpreter für die GraalVM. |
regex/ | TRegex, eine Engine für reguläre Ausdrücke für andere GraalVM-Sprachen. |
sdk/ | GraalVM SDK, langfristig unterstützte APIs von GraalVM. |
substratevm/ | Framework für die AOT-Kompilierung (Ahead-of-Time) mit Native Image. |
sulong/ | Sulong, eine Engine zum Ausführen von LLVM-Bitcode auf GraalVM. |
tools/ | Mit dem Instrumentierungsframework implementierte Tools für GraalVM-Sprachen. |
truffle/ | Das Sprachimplementierungsframework von GraalVM zum Erstellen von Sprachen und Tools. |
visualizer/ | Ideal Graph Visualizer (IGV), ein Tool zur Analyse von Graal-Compiler-Graphen. |
vm/ | Komponenten zum Erstellen von GraalVM-Distributionen. |
wasm/ | GraalWasm, eine Engine zum Ausführen von WebAssembly-Programmen auf GraalVM. |
GraalVM bietet zusätzliche Sprachen, Tools und andere Komponenten, die in verwandten Repositorys entwickelt wurden. Diese sind:
Name | Beschreibung |
---|---|
FastR | Implementierung der R-Sprache. |
GraalJS | Implementierung von JavaScript und Node.js. |
GraalPy | Implementierung der Python-Sprache. |
GraalVM-Demos | Mehrere Beispielanwendungen, die die GraalVM-Funktionen veranschaulichen. |
Native Build-Tools | Erstellen Sie Tool-Plugins für GraalVM Native Image. |
SimpleLanguage | Eine einfache Beispielsprache, die mit dem Truffle-Framework erstellt wurde. |
SimpleTool | Ein einfaches Beispieltool, das mit dem Truffle-Framework erstellt wurde. |
TrüffelRubin | Implementierung der Ruby-Sprache. |
Die GraalVM Community Edition ist Open Source und wird unter Version 2 der GNU General Public License mit der „Classpath“-Ausnahme vertrieben, wobei es sich um dieselben Bedingungen wie für Java handelt. Die Lizenzen der einzelnen GraalVM-Komponenten sind im Allgemeinen von der Lizenz einer bestimmten Sprache abgeleitet (siehe Tabelle unten).
Komponente(n) | Lizenz |
---|---|
Espresso, Ideal Graph Visualizer | GPL 2 |
GraalVM-Compiler, SubstrateVM, Tools, VM | GPL 2 mit Classpath-Ausnahme |
GraalVM SDK, GraalWasm, Truffle Framework, TRegex | Universelle Erlaubnislizenz |
Sulong | 3-Klausel-BSD |