Run Programs Faster Anywhere

High-performance polyglot VM

GraalVM is a universal virtual machine for running applications written in JavaScript, Python 3, Ruby, R, JVM-based languages like Java, Scala, Kotlin, and LLVM-based languages such as C and C++.

GraalVM removes the isolation between programming languages and enables interoperability in a shared runtime. It can run either standalone or in the context of OpenJDK, Node.js, Oracle Database, or MySQL.

OUR ADVANTAGES What does GraalVM do?

Polyglot

Zero overhead interoperability between programming languages allows you to write polyglot applications and select the best language for your task.

Find out more
const express = require('express');
const app = express();
app.listen(3000);
app.get('/', function(req, res) {
  var text = 'Hello World!';
  const BigInteger = Java.type(
    'java.math.BigInteger');
  text += BigInteger.valueOf(2)
    .pow(100).toString(16);
  text += Polyglot.eval(
    'R', 'runif(100)')[0];
  res.send(text);
})
$ javac HelloWorld.java
$ time java HelloWorld
user 0.070s
$ native-image HelloWorld
$ time ./helloworld
user 0.005s

Native

Native images compiled with GraalVM ahead-of-time improve the startup time and reduce the memory footprint of JVM-based applications.

Find out more

Embeddable

GraalVM can be embedded in both managed and native applications. There are existing integrations into OpenJDK, Node.js, Oracle Database, and MySQL.

Find out more
import org.graalvm.polyglot.*;
public class HelloPolyglot {
  public static void main(String[] args) {
    System.out.println("Hello Java!");
    Context context = Context.create();
    context.eval("js",
      "print('Hello JavaScript!');");
  }
}

Get started with GraalVM

Java Developer

Are you working on a Java application? Run your program faster, create native images, or make your code extensible.

GET STARTED
Node.js Developer

Are you a JavaScript developer building Node.js apps? Run JavaScript in the database, use existing Java libraries, monitor and profile your code easily!

GET STARTED
Ruby, R, or Python Developer

Would you like to troubleshoot your Ruby, R or Python app with Chrome Debugger? It is possible with GraalVM!

GET STARTED
Tool or Language Implementor

Are you developing Web applications for multiple platforms or would you like to extend the GraalVM ecosystem with your own language?

GET STARTED