Current production virtual machines (VMs) provide high performance execution of programs only for a specific language or a very small set of languages. Compilation, memory management, and tooling are maintained separately for different languages, violating the don't repeat yourself (DRY) principle. This leads not only to a larger burden for the VM implementers, but also for developers due to incoherent performance characteristics, tooling, and configuration. Furthermore, communication between programs written in different languages requires costly serialization and deserialization logic. Finally, high performance VMs are heavy-weight processes with high memory footprint and difficult embeddability.

GraalVM is a research project for exploring a novel architecture for virtual machines. Our vision is to create a single VM that provides high performance for all programming languages, therefore facilitating communication between programs. This architecture supports unified language-agnostic tooling for better maintainability and its embeddability would make the VM ubiquitous across the stack.

GraalVM supports JVM-based languages like Java, Scala, Groovy, or Kotlin, JavaScript (including node.js), languages compiling to LLVM bitcode like C, C++, or Rust and experimental versions of Ruby, R, and Python.

More information on the official GraalVM website :

Hardware and Software, Engineered to Work Together