GraalVM est une distribution JDK hautes performances qui compile à l'avance vos applications Java en binaires autonomes. Ces binaires démarrent instantanément, offrent des performances optimales sans préchauffage et utilisent moins de ressources. Vous pouvez utiliser GraalVM comme n'importe quel autre kit de développement Java dans votre IDE.
Le site Web du projet à l'adresse https://www.graalvm.org/ décrit comment démarrer, comment rester connecté et comment contribuer.
Veuillez vous référer au site Web GraalVM pour la documentation. Vous pouvez trouver la plupart des sources de documentation dans le répertoire docs/ dans la même hiérarchie que celle affichée sur le site Web. Une documentation supplémentaire, y compris les instructions du développeur pour les composants individuels, peut être trouvée dans les documents/ sous-répertoires correspondants. La documentation du framework Truffle, par exemple, se trouve dans truffle/docs/ . Cela s'applique également aux langages, outils et autres composants maintenus dans les référentiels associés.
Ce référentiel source est le référentiel principal de GraalVM et comprend les composants suivants :
Annuaire | Description |
---|---|
.devcontainer/ | Fichiers de configuration pour les conteneurs de développement GitHub. |
.github/ | Fichiers de configuration pour les tickets GitHub, les workflows,…. |
compiler/ | Compilateur Graal, un compilateur moderne et polyvalent écrit en Java. |
espresso/ | Espresso, un interpréteur de bytecode Java méta-circulaire pour GraalVM. |
regex/ | TRegex, un moteur d'expression régulière pour d'autres langages GraalVM. |
sdk/ | GraalVM SDK, API prises en charge à long terme de GraalVM. |
substratevm/ | Framework de compilation anticipée (AOT) avec Native Image. |
sulong/ | Sulong, un moteur pour exécuter le bitcode LLVM sur GraalVM. |
tools/ | Outils pour les langages GraalVM implémentés avec le framework d'instrumentation. |
truffle/ | Le cadre d'implémentation du langage GraalVM pour la création de langages et d'outils. |
visualizer/ | Ideal Graph Visualizer (IGV), un outil d'analyse des graphiques du compilateur Graal. |
vm/ | Composants pour créer des distributions GraalVM. |
wasm/ | GraalWasm, un moteur pour exécuter des programmes WebAssembly sur GraalVM. |
GraalVM fournit des langages, des outils et d'autres composants supplémentaires développés dans des référentiels associés. Ce sont :
Nom | Description |
---|---|
RapideR | Implémentation du langage R. |
GraalJS | Implémentation de JavaScript et Node.js. |
GraalPy | Implémentation du langage Python. |
Démos GraalVM | Plusieurs exemples d'applications illustrant les capacités de GraalVM. |
Outils de construction natifs | Créez des plugins d'outils pour GraalVM Native Image. |
LangageSimple | Un exemple de langage simple construit avec le framework Truffle. |
Outil simple | Un exemple d'outil simple construit avec le framework Truffle. |
TruffeRubis | Implémentation du langage Ruby. |
GraalVM Community Edition est open source et distribué sous la version 2 de la licence publique générale GNU avec l'exception « Classpath », qui sont les mêmes termes que pour Java. Les licences des composants individuels GraalVM sont généralement dérivées de la licence d'un langage particulier (voir le tableau ci-dessous).
Composant(s) | Licence |
---|---|
Espresso, visualiseur de graphiques idéal | GPL2 |
Compilateur GraalVM, SubstrateVM, Outils, VM | GPL 2 avec exception de chemin de classe |
SDK GraalVM, GraalWasm, Truffle Framework, TRegex | Licence permissive universelle |
Sulong | BSD à 3 clauses |