How is GraalVM licensed? #
GraalVM is distributed as Community and Enterprise editions.
GraalVM Community Edition is open source software built from the sources available on GitHub and distributed under version 2 of the GNU General Public License with the “Classpath” Exception, which are the same terms as for Java. We also recommend checking the licenses of the individual GraalVM components (which are generally derivative of the license of a particular language). GraalVM Community is free to use for any purpose and comes with no strings attached, but also no guarantees or support.
Oracle GraalVM Enterprise Edition is licensed under either the GraalVM OTN License Agreement, which is free for testing, evaluation, or for developing non-production applications, or under the terms of the Oracle Master License Agreement for customers.
The Native Image plugin is available as an Early Adopter technology in GraalVM Enterprise. It can be used in production and is supported by Oracle as part of your GraalVM Enterprise subscription. However, it is not covered by Oracle’s standard warranty as Oracle reserves the right to force you to migrate to newer versions in order to get support.
If you have a question about your license rights and obligations, please consult the Licensing Information User Manual, contact your sales representative or send an email to firstname.lastname@example.org.
How much does a GraalVM Enterprise subscription cost? #
Please consult the Oracle global price list for more information on GraalVM Enterprise offerings and pricing or visit Oracle Store. Alternatively, contact your sales representative to discuss subscription licensing and support terms.
What does GraalVM Enterprise subscription include? #
GraalVM Enterprise subscription provides licensing and support for on-premises environments and includes:
- Oracle premier support 24x7 by the Oracle GraalVM team
- Access to My Oracle Support (MOS)
- Improved performance and security over GraalVM Community (see GraalVM Enterprise Announcement)
For Oracle Cloud customers, GraalVM Enterprise support is included in the Oracle Cloud subscription.
Where should bugs, security issues, or enhancement requests be reported? #
Any security vulnerabilities in either GraalVM Community or GraalVM Enterprise should only be reported via email to email@example.com. Please consult our Reporting Vulnerabilities guide for more information on reporting security vulnerabilities. Do not report security issues on GitHub Issues.
How do I contribute to GraalVM? #
We welcome contributions to GraalVM from the community and are thankful for past contributions both big and small. We are happy to accept pull requests at GitHub Pulls. We require contributors to sign the Oracle Contributor Agreement.
How can I receive updates about GraalVM? #
We maintain three mailing lists:
- firstname.lastname@example.org – a low traffic announcement list used by the project maintainers;
- email@example.com – an open source user mailing list for general questions and discussions;
- firstname.lastname@example.org – a list for contributors and language implementors.
Additional ways to stay up-to-date with GraalVM development is to track GraalVM at Medium blogging platform, follow the @graalvm Twitter handle, watch the github.com/oracle/graal repository, or see posts on GraalVM at Oracle Developers Blog and at the Oracle GraalVM Enterprise Edition Blog.
How do I get support updates? #
What is the “readiness” level of GraalVM Windows support? #
As of version 20.0 GraalVM builds for Windows platforms are production-ready and
are no longer under experimental support. The Windows distribution includes
the JDK with the GraalVM compiler enabled, the functional
gu utility to
(e.g., Chrome inspector based debugger, Profiler, etc.). GraalVM Native Image
component needs to be installed with
gu as with other distributions. Node.js support on the Windows
platform is scheduled to be included in the next GraalVM release (20.1).
Can I run my existing application with GraalVM? #
What makes GraalVM a true ‘polyglot’ VM? #
GraalVM can not only run individual languages with competitive performance, it also enables high-performance language interoperability. Languages can access each other’s data structures and call each other’s methods. We avoid costly conversions of data structures and instead allow data structures to be shared between languages. Our tooling is built in language-agnostic ways to unify tasks like debugging or profiling. This simplifies deployment and configuration of the runtime environment. Important VM components like the just-in-time-compiler and garbage collector are all fully shared across all languages.
What does it mean to run any language ‘anywhere’? #
GraalVM can run embedded in OpenJDK, Oracle JDK or Node.js platforms, standalone, or embedded in data stores like the Oracle Database. In all scenarios, the same underlying compilation and language execution technology runs in-process and with direct access to data structures of the surrounding system. Separation of logical and physical data layout is a first class principle for GraalVM and enables flexible use of data structures without marshalling costs. We encourage the embedding of GraalVM in other projects and publish APIs for that purpose. We envision a future where high-performance and standardized language execution technology is available without the need for provisioning separate VM deployments.
Can I use GraalVM with microservices frameworks? #
GraalVM can run any Java microservices framework. Several Java microservices frameworks have already accepted the GraalVM Native Image technology as a platform. Examples include: Helidon, Quarkus, Micronaut. For these frameworks GraalVM Native Image significantly reduces the startup time and runtime memory requirements.
Can GraalVM run Spring applications? #
GraalVM can run Spring applications, compiled with OpenJDK, OracleJDK or other JVMs. Here is a Spring application example that not only runs on GraalVM, but also applies the R language to visualize a plot of the data, using GraalVM polyglot capabilities.
Spring Framework support of GraalVM Native Image technology is in its initial stages. The ability of GraalVM to create executable native images of Spring applications is only partially supported. GraalVM Native Image has limitations on what Java functionality it can compile ahead-of-time. The GraalVM team is investigating what can be done to fully support compiling Spring applications to native images.
What is the status of IDE integration? #
What are existing real-world production deployments of GraalVM? #
Several production deployments of GraalVM exist today. For example, Christian Thalinger from Twitter describes the production deployment of GraalVM at Twitter and how it can help save money via improved performance in his interview Accelerating Processing at Twitter and how they save money using GraalVM. We thank early adopters of our technology who give us feedback on the project and help us develop new features.