GraalVM Community Edition is open source software built from the sourcesavailable on and distributed underversion 2 of the GNU General Public License with the “Classpath” Exception, which are the same terms as for Java. We alsorecommend checking the ofthe 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 orsupport.

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 .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 Oraclereserves 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 .

How much does a GraalVM Enterprise subscription cost?

Please consult the for more information on GraalVM Enterprise offerings and pricing. Alternatively, contact your salesrepresentative 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:

  • 24x7 by the Oracle GraalVM team
  • Access to My Oracle Support (MOS)
  • Improved performance and security over GraalVM Community (see )

For Oracle Cloud customers, GraalVM Enterprisesupport is included in the Oracle Cloud subscription.

Where should bugs, security issues, or enhancement requests be reported?

Please report any bugs or enhancement requests for GraalVM Community usingGitHub Issues. GraalVM Enterprise bugsor enhancement requests should be reported using .

We always listen to input and feedback from the community and will address issues there time permitting.

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 .We require contributors to sign the Oracle Contributor Agreement.

We maintain three mailing lists:

  • graalvm-announce@oss.oracle.com – a low traffic announcement list used by the project maintainers;
  • graalvm-users@oss.oracle.com – an open source user mailing list for general questions and discussions;
  • graalvm-dev@oss.oracle.com – a list for contributors and language implementors.

Additional ways to stay up-to-date with GraalVM development is to track GraalVMat , follow the _@graalvm_Twitter handle, watch thegithub.com/oracle/graal repository, or see posts on GraalVM at and at the Oracle GraalVM Enterprise Edition Blog.

How do I get support updates?

Comprehensive GraalVM Enterprise support is provided by the Oracle GraalVM team via My Oracle Support.Please verify if are activated with your account.

What is the “readiness” level of GraalVM Windows support?

GraalVM Windows support is currently under development and released as“experimental” in GraalVM 19.x. The Windows preview package includes the JDKwith the GraalVM compiler enabled, Native Image capabilities, GraalVM’sJavaScript engine and the developer tools (e.g. Chrome inspector based debugger,Profiler, etc.). Currently, there is no utilitynor the ability to add support for other GraalVM languages. The GraalVM team isactively working on it, and you can follow our progress onGitHub.

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, italso enables high-performance language interoperability. Languages can accesseach other’s data structures and call each other’s methods. We avoid costlyconversions of data structures and instead allow data structures to be sharedbetween languages. Our tooling is built in language-agnostic ways to unify taskslike debugging or profiling. This simplifies deployment and configurationof the runtime environment. Important VM components like thejust-in-time-compiler and garbage collector are all fully shared across alllanguages.

GraalVM can run embedded in OpenJDK, Oracle Java or Node.js platforms,standalone, or embedded in data stores like the . In all scenarios, the sameunderlying compilation and language execution technology runs in-process andwith direct access to data structures of the surrounding system. Separation oflogical and physical data layout is a first class principle for GraalVM andenables flexible use of data structures without marshalling costs. We encouragethe embedding of GraalVM in other projects and publish APIs for that purpose. Weenvision a future where high-performance and standardized language executiontechnology is available without the need for provisioning separate VMdeployments.

Can I use GraalVM with a microservices framework?

Several Java microservices frameworks have already accepted the technology as a platform. Examples include: Helidon, , Micronaut.For these frameworks GraalVM Native Image significantly reduces the startup timeand 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 thatnot only runs on GraalVM, but also applies the R language to visualize a plot of the data, usingGraalVM polyglot capabilities.

Spring Framework support of 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 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?

GraalVM supports major IDEs, as well as major debugging protocols. Eclipse,NetBeans, IntelliJ IDEA, Visual Studio Code are possible IDEs since they supportall languages within one environment. IntelliJ Enterprise edition has strongsupport for all languages even within one file. GraalVM provides a built-inimplementation of Chrome DevTools Protocol that, in addition to debuggingJavaScript, even enables debugging of R and Ruby applications, separately oracross languages. You can get a multilingual stacktrace that way.

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 ofGraalVM at Twitter and how it can help save money via improved performance inhis 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.