forked from oracle/graal
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
PullRequest: graal/9722
- Loading branch information
Showing
13 changed files
with
225 additions
and
196 deletions.
There are no files selected for viewing
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,64 +1,100 @@ | ||
# GraalVM | ||
[![GraalVM](.github/assets/logo_320x64.svg)][website] | ||
|
||
[![https://graalvm.slack.com](https://img.shields.io/badge/slack-join%20channel-active)](https://www.graalvm.org/slack-invitation/) | ||
[![GraalVM downloads][badge-dl]][downloads] [![GraalVM docs][badge-docs]][docs] [![GraalVM on Slack][badge-slack]][slack] [![GraalVM on Twitter][badge-twitter]][twitter] [![GraalVM on YouTube][badge-yt]][youtube] [![GraalVM Gate][badge-gate]][gate] [![License][badge-license]](#license) | ||
|
||
GraalVM is a universal virtual machine for running applications written in JavaScript, Python, Ruby, R, JVM-based languages like Java, Scala, Clojure, Kotlin, and LLVM-based languages such as C and C++. | ||
GraalVM is a high-performance JDK distribution designed to accelerate the execution of applications written in Java and other JVM languages along with support for JavaScript, Ruby, Python, and a number of other popular languages. | ||
|
||
The project website at [https://www.graalvm.org](https://www.graalvm.org) describes how to [get started](https://www.graalvm.org/docs/getting-started/), how to [stay connected](https://www.graalvm.org/community/), and how to [contribute](https://www.graalvm.org/community/contributors/). | ||
The project website at [https://www.graalvm.org/][website] describes how to [get started][getting-started], how to [stay connected][community], and how to [contribute][contributors]. | ||
|
||
## Repository Structure | ||
|
||
The GraalVM main source repository includes the components listed below. The documentation for each component includes | ||
developer instructions for the component. | ||
|
||
* [GraalVM SDK](sdk/README.md) contains long term supported APIs of GraalVM. | ||
|
||
* [GraalVM compiler](compiler/README.md) written in Java that supports both dynamic and static compilation and can integrate with | ||
the Java HotSpot VM or run standalone. | ||
|
||
* [Truffle](truffle/README.md) language implementation framework for creating languages and instrumentations for GraalVM. | ||
|
||
* [Tools](tools/README.md) contains a set of tools for GraalVM languages | ||
implemented with the instrumentation framework. | ||
## Documentation | ||
|
||
* [Substrate VM](substratevm/README.md) framework that allows ahead-of-time (AOT) | ||
compilation of Java applications under closed-world assumption into executable | ||
images or shared objects. | ||
Please refer to the [GraalVM website for documentation][docs]. You can find most of the documentation sources in the [`docs/`](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/`](truffle/docs/). This also applies to languages, tools, and other components maintained in [related repositories](#related-repositories). | ||
|
||
* [Sulong](sulong/README.md) is an engine for running LLVM bitcode on GraalVM. | ||
|
||
* [GraalWasm](wasm/README.md) is an engine for running WebAssembly programs on GraalVM. | ||
|
||
* [TRegex](regex/README.md) is an implementation of regular expressions which leverages GraalVM for efficient compilation of automata. | ||
|
||
* [VM](vm/README.md) includes the components to build a modular GraalVM image. | ||
## Get Support | ||
|
||
* [VS Code](/vscode/README.md) provides extensions to Visual Studio Code that support development of polyglot applications using GraalVM. | ||
* Open a [GitHub issue][issues] for bug reports, questions, or requests for enhancements. | ||
* Join the [GraalVM Slack][slack] to connect with the community and the GraalVM team. | ||
* Report a security vulnerability according to the [Reporting Vulnerabilities guide][reporting-vulnerabilities]. | ||
|
||
## Get Support | ||
## Repository Structure | ||
|
||
* Open a [GitHub issue](https://github.com/oracle/graal/issues) for bug reports, questions, or requests for enhancements. | ||
* Report a security vulnerability according to the [Reporting Vulnerabilities guide](https://www.oracle.com/corporate/security-practices/assurance/vulnerability/reporting.html). | ||
This source repository is the main repository for GraalVM and includes the following components: | ||
|
||
Directory | Description | ||
------------ | ------------- | ||
[`.github/`](.github/) | Configuration files for GitHub issues, workflows, …. | ||
[`compiler/`](compiler/) | [Graal compiler][reference-compiler], a modern, versatile compiler written in Java. | ||
[`espresso/`](espresso/) | [Espresso][java-on-truffle], a meta-circular Java bytecode interpreter for the GraalVM. | ||
[`java-benchmarks/`](java-benchmarks/) | Java benchmarks. | ||
[`regex/`](regex/) | TRegex, a regular expression engine for other GraalVM languages. | ||
[`sdk/`](sdk/) | [GraalVM SDK][graalvm-sdk], long-term supported APIs of GraalVM. | ||
[`substratevm/`](substratevm/) | Framework for ahead-of-time (AOT) compilation with [Native Image][native-image]. | ||
[`sulong/`](sulong/) | [Sulong][reference-sulong], an engine for running LLVM bitcode on GraalVM. | ||
[`tools/`](tools/) | Tools for GraalVM languages implemented with the instrumentation framework. | ||
[`truffle/`](truffle/) | GraalVM's [language implementation framework][truffle] for creating languages and tools. | ||
[`vm/`](vm/) | Components for building GraalVM distributions. | ||
[`wasm/`](wasm/) | [GraalWasm][reference-graalwasm], an engine for running WebAssembly programs on GraalVM. | ||
|
||
## Related Repositories | ||
|
||
GraalVM allows running of following languages which are being developed and tested in related repositories with GraalVM core to run on top of it using Truffle and the GraalVM compiler. These are: | ||
* [GraalJS](https://github.com/oracle/graaljs) - JavaScript and Node.js | ||
* [FastR](https://github.com/oracle/fastr) - R Language | ||
* [GraalPython](https://github.com/oracle/graalpython) - Python | ||
* [TruffleRuby](https://github.com/oracle/truffleruby) - Ruby | ||
* [SimpleLanguage](https://github.com/graalvm/simplelanguage) - A simple demonstration language for the GraalVM. | ||
GraalVM provides additional languages, tools, and other components developed in related repositories. These are: | ||
|
||
Name | Description | ||
------------ | ------------- | ||
[FastR] | Implementation of the R language. | ||
[GraalJS] | Implementation of JavaScript and Node.js. | ||
[GraalPython] | Implementation of the Python language. | ||
[GraalVM Demos][graalvm-demos] | Several example applications illustrating GraalVM capabilities. | ||
[Native Build Tools][native-build-tools] | Build tool plugins for GraalVM Native Image. | ||
[SimpleLanguage] | A simple example language built with the Truffle framework. | ||
[SimpleTool] | A simple example tool built with the Truffle framework. | ||
[TruffleRuby] | Implementation of the Ruby language. | ||
[VS Code Extensions][vscode-extensions] | VS Code extensions for GraalVM. | ||
|
||
## License | ||
|
||
Each GraalVM component is licensed: | ||
* [Truffle Framework](/truffle/) and its dependency [GraalVM SDK](/sdk/) are licensed under the [Universal Permissive License](truffle/LICENSE.md). | ||
* [Tools](/tools/) project is licensed under the [GPL 2 with Classpath exception](tools/LICENSE). | ||
* [TRegex](/regex/) project is licensed under the [Universal Permissive License](regex/LICENSE.md). | ||
* [GraalVM compiler](/compiler/) is licensed under the [GPL 2 with Classpath exception](compiler/LICENSE.md). | ||
* [Substrate VM](/substratevm/) is licensed under the [GPL 2 with Classpath exception](substratevm/LICENSE). | ||
* [Sulong](/sulong/) is licensed under [3-clause BSD](sulong/LICENSE). | ||
* [GraalWasm](/wasm/) is licensed under the [Universal Permissive License](wasm/LICENSE). | ||
* [VM](/vm/) is licensed under the [GPL 2 with Classpath exception](vm/LICENSE_GRAALVM_CE). | ||
* [VS Code](/vscode/) extensions are distributed under the [UPL 1.0 license](/vscode/graalvm/LICENSE.txt). | ||
GraalVM Community Edition is open source and distributed under [version 2 of the GNU General Public License with the “Classpath” Exception](LICENSE), 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). GraalVM Community is free to use for any purpose - no strings attached. | ||
|
||
Component(s) | License | ||
------------ | ------------- | ||
[Espresso](espresso/LICENSE) | GPL 2 | ||
[GraalVM Compiler](compiler/LICENSE.md), [SubstrateVM](substratevm/LICENSE), [Tools](tools/LICENSE), [VM](vm/LICENSE_GRAALVM_CE) | GPL 2 with Classpath Exception | ||
[GraalVM SDK](sdk/LICENSE.md), [GraalWasm](wasm/LICENSE), [Truffle Framework](truffle/LICENSE.md), [TRegex](regex/LICENSE.md) | Universal Permissive License | ||
[Sulong](sulong/LICENSE) | 3-clause BSD | ||
|
||
|
||
[badge-dl]: https://img.shields.io/badge/download-latest-blue | ||
[badge-docs]: https://img.shields.io/badge/docs-read-green | ||
[badge-gate]: https://github.com/oracle/graal/actions/workflows/main.yml/badge.svg | ||
[badge-license]: https://img.shields.io/badge/license-GPLv2+CE-green | ||
[badge-slack]: https://img.shields.io/badge/Slack-join-active?logo=slack | ||
[badge-twitter]: https://img.shields.io/badge/Twitter-@graalvm-active?logo=twitter | ||
[badge-yt]: https://img.shields.io/badge/YouTube-subscribe-active?logo=youtube | ||
[community]: https://www.graalvm.org/community/ | ||
[contributors]: https://www.graalvm.org/community/contributors/ | ||
[docs]: https://www.graalvm.org/docs/introduction/ | ||
[downloads]: https://www.graalvm.org/downloads/ | ||
[fastr]: https://github.com/oracle/fastr | ||
[gate]: https://github.com/oracle/graal/actions/workflows/main.yml | ||
[getting-started]: https://www.graalvm.org/docs/getting-started/ | ||
[graaljs]: https://github.com/oracle/graaljs | ||
[graalpython]: https://github.com/oracle/graalpython | ||
[graalvm-demos]: https://github.com/graalvm/graalvm-demos | ||
[graalvm-sdk]: https://www.graalvm.org/sdk/javadoc/ | ||
[issues]: https://github.com/oracle/graal/issues | ||
[java-on-truffle]: https://www.graalvm.org/reference-manual/java-on-truffle/ | ||
[native-build-tools]: https://github.com/graalvm/native-build-tools | ||
[native-image]: https://www.graalvm.org/reference-manual/native-image/ | ||
[reference-compiler]: https://www.graalvm.org/reference-manual/compiler/ | ||
[reference-graalwasm]: https://www.graalvm.org/reference-manual/wasm/ | ||
[reference-sulong]: https://www.graalvm.org/reference-manual/llvm/ | ||
[reporting-vulnerabilities]: https://www.oracle.com/corporate/security-practices/assurance/vulnerability/reporting.html | ||
[simplelanguage]: https://github.com/graalvm/simplelanguage | ||
[simpletool]: https://github.com/graalvm/simpletool | ||
[slack]: https://www.graalvm.org/slack-invitation/ | ||
[truffle]: https://www.graalvm.org/graalvm-as-a-platform/language-implementation-framework/ | ||
[truffleruby]: https://github.com/oracle/truffleruby | ||
[twitter]: https://twitter.com/graalvm | ||
[vscode-extensions]: https://github.com/graalvm/vscode-extensions | ||
[website]: https://www.graalvm.org/ | ||
[youtube]: https://www.youtube.com/graalvm |
Oops, something went wrong.