GraalVM as a Platform

This page targets developers who would like to embed GraalVM in their product or extend it by implementing their own language or tool.

Embed GraalVM

The Java Polyglot API lets you embed and run code of Graal languages in JVM-based host applications.

To get started please see our JVM Embedding Guide. Alternatively you can have a look at the reference documentation in JavaDoc:

  • The Polyglot Package allows you to configure and run polyglot applications.
  • The Proxy Package allows you to mimic Graal language objects using proxies.
  • The IO Package allows you to customize the file system access of languages.

Note: Support for native embedding will be added soon.

Extend GraalVM

GraalVM is an open ecosystem and we invite third party systems to participate via connecting their own programming languages, tools, or platforms. For that purpose we have developed Truffle, a language and tool development framework.

Implement your own Language

The Truffle framework allows you to run programming languages efficiently on GraalVM. It simplifies language implementation by automatically deriving high-performance code from interpreters. Find details about the approach in this research paper.

Implementing your own language using GraalVM will not only give you high performance. More importantly, it allows your language to connect with the rich tooling provided by the GraalVM ecosystem.

To get started please see our Language Implementation section.

Implement your own Tools

GraalVM provides a framework for creating language-agnostic tools like debuggers, profilers, or other instrumentations. In general, GraalVM provides a standardized way to express and run program code enabling cross-language research and the development of tools that are developed once and then can be applied to any language.

To get started please see our Instrument Implementation section.