What is GraalVM?
An ecosystem and shared runtime offering performance advantages not only to JVM-based languages such as Java, Scala, Groovy, and Kotlin, but also to programming languages as JavaScript, Ruby, Python, and R. Additionally, it enables the execution of native code on the JVM via LLVM front-end.
GraalVM is a tool in the Virtual Machine category of a tech stack.
GraalVM is an open source tool with 20.4K GitHub stars and 1.6K GitHub forks. Here’s a link to GraalVM's open source repository on GitHub
Who uses GraalVM?
Companies
14 companies reportedly use GraalVM in their tech stacks, including JustChunks, waipu.tv, and Platform.
Developers
52 developers on StackShare have stated that they use GraalVM.
GraalVM Integrations
Node.js, MySQL, Oracle, Micronaut Framework, and Helidon are some of the popular tools that integrate with GraalVM. Here's a list of all 5 tools that integrate with GraalVM.
Decisions about GraalVM
Here are some stack decisions, common use cases and reviews by companies and developers who chose GraalVM in their tech stack.
Joshua Dean Küpper
CEO at Scrayos UG (haftungsbeschränkt) · | 4 upvotes · 259.6K views
We use Quarkus with native compilation in GraalVM for our global REST-API "Charon", that can be used by every developer to request user, server and game-data (protected through OAuth2). Quarkus offers a reliable framework, library and stack for high-quality APIs and integrates Vert.x into its core.
GraalVM pushes the performance boundaries even further with the ability to perform ahead-of-time native compilation so we can reach an incredible small memory-footprint and fast bootup-times that we need for our microservices architecture.
GraalVM's Features
- Polyglot - Zero overhead interoperability between programming languages allows you to write polyglot applications and select the best language for your task
- Native - Native images compiled with GraalVM ahead-of-time improve the startup time and reduce the memory footprint of JVM-based applications
- Embeddable - GraalVM can be embedded in both managed and native applications. There are existing integrations into OpenJDK, Node.js, Oracle Database, and MySQL
GraalVM Alternatives & Comparisons
What are some alternatives to GraalVM?
Scala Native
Scala Native is a new ahead-of-time compiler and lightweight managed runtime designed specifically for Scala. Project is currently in pre-release stage.
Node.js
Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.
Docker
The Docker Platform is the industry-leading container platform for continuous, high-velocity innovation, enabling organizations to seamlessly build and share any application — from legacy to what comes next — and securely run them anywhere
Golang
Go is expressive, concise, clean, and efficient. Its concurrency mechanisms make it easy to write programs that get the most out of multicore and networked machines, while its novel type system enables flexible and modular program construction. Go compiles quickly to machine code yet has the convenience of garbage collection and the power of run-time reflection. It's a fast, statically typed, compiled language that feels like a dynamically typed, interpreted language.
Git
Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.