Announcing GraalVM 19.0

Last year we started our first release candidate builds of GraalVM, and since then we received a lot of feedback, solved dozens of reported issues, improved developer experience, bettered performance, enhanced the polyglot interoperability and the compatibility of the languages with their respective ecosystems. We added tests, benchmarks and real world examples to the build infrastructure to ensure smooth progress. We received contributions from developers from all over the world and from many large companies like RedHat, Alibaba, OCI computing, Pivotal and others. We are really grateful for all contributions and also any feedback we have received so far! Early adopters and pioneers are essential kick starters for any new type of technology.

While we previously only published “release candidates”, we believe that GraalVM finally is mature and ready for production use. Therefore, we today officially release GraalVM 19.0. The core download contains the following components:

There are also components that can be installed via the gu (GraalVM Updater) utility, for example:

gu install native-image

GraalVM Native Image, currently available as an early adopter capability, has incredibly fast startup time, which is a very welcomed quality in cloud deployment scenarios. Many projects in the ecosystem have accepted GraalVM Native Images as a platform for their artifacts or workloads: Quarkus, Micronaut, Helidon — support GraalVM native images. Netty recently included the configuration for GraalVM native images into its artifacts simplifying native image generation for all their and downstream projects’ users. We also continue to work in collaboration with Pivotal engineers and looking forward to the native image support for Spring applications.

Other components installable with the gu utility are the language components

gu install ruby R python

These languages Python, Ruby, and R, that we are developing, are still “experimental” in the release. We are looking for further feedback on those artifacts and need more stabilization/community work.

However, there are projects already that explore the polyglot nature of the GraalVM, for example Eclipse Vert.x, nodejvm and gKnit use GraalVM for mixing Java and JavaScript, Node.js and Java, and R and Ruby respectively.

Versioning

Until now we released monthly builds of GraalVM and we will continue to innovate and improve the platform further. However, we realize that with the release being available, the community will rely on it more than before.

The GraalVM 19.0 will be the current stable release recommended for production use. We plan to release updates to it: GraalVM 19.1, 19.2 and so on at least once per quarter. These updates will include bug fixes and stability and performance improvements, but no major new features. When necessary, a one-off hotfix GraalVM 19.x.1, 19.x.2, etc. release will be published.

At the same time, we’re going to have monthly beta releases which will push the boundaries of what’s possible to do with GraalVM, include new major features, add new platform support and so on. For example, we’re planning on keeping up with the ecosystem and releasing releases with the updated versions of the platforms regularly. JDK 11 based builds as well as Node.js 12 based builds are planned.

These beta releases are marked “20.0-betaN”, where N is an incremented counter. They will converge into the next stable release GraalVM 20.0 next year.

Community

We see more and more interest for GraalVM in the community every day and we are thankful for any type of contributions. In order to further improve the engagement with the community and overall governance of the project, we are introducing regular community calls. The agenda for a community call will be based on graalvm-dev mailing list messages or GitHub issues that are posted on Twitter with hash tag #GraalVMCommunity — i.e., most liked tweets will be on the agenda.

We will also organize a regular GraalVM Committer Workshops, the first of which will happen at Code One. We will announce the details on the graalvm-dev mailing list.

We understand the value GraalVM offers to the ecosystem and we’d love to keep it a great open-source project which facilitates participation from various contributors and evolves to be the best version of itself for everyone involved.

Enterprise

In addition to the release of GraalVM 19.0 Community Edition, there is also the GraalVM 19.0 Enterprise Edition made available by Oracle. It provides even more options for increasing performance and comes with commercial support. See the announcement blog post for this as an official product here. We are committed to improve all editions of GraalVM and believe having a supported commercial product available adds value to the overall ecosystem. It provides the option for companies for a stable long-term supported offering and helps funding the quite substantial core development.

Outlook

The GraalVM team is committed to make GraalVM the best in class runtime for all supported languages. It’s an ambitious goal and it will certainly take time, but we know that right now GraalVM can be used in production and offers benefits in many scenarios. We ourselves are using GraalVM for our Java deployments, Twitter is using it for speeding up Scala microservices, Goldman Sachs engineering is evaluating a migration of their internal programming language to GraalVM, the Wix Engineering team experiments with Java and Node.js polyglot applications, and there is also lightweight Native Clojure. We know of more projects or companies using GraalVM and are looking forward to hearing their stories publicly!

Go get GraalVM and build stuff!

Incredibly happy and excited GraalVM team