GraalPy (original) (raw)
A high-performance embeddable Python 3 runtime for Java
Benefits
Fastest Python on the JVM
Graal JIT compiles Python for native code speed
Simple distribution
Package Python applications as a single binary with GraalVM Native Image
How to Get Started
You have the option to extend your Java application with Python, or go straight to the starter project
1. Add GraalPy as a dependency from Maven Central
1. Add GraalPy as a dependency from Maven Central
<dependency>
<groupId>org.graalvm.polyglot</groupId>
<artifactId>polyglot</artifactId>
<version>24.2.0</version>
</dependency>
<dependency>
<groupId>org.graalvm.polyglot</groupId>
<artifactId>python</artifactId>
<version>24.2.0</version>
<type>pom</type>
</dependency>
or
implementation("org.graalvm.polyglot:polyglot:24.2.0")
implementation("org.graalvm.polyglot:python:24.2.0")
2. Embed Python code in Java
2. Embed Python code in Java
import org.graalvm.polyglot.Context;
try (Context context = Context.create()) {
context.eval("python", "print('Hello from GraalPy!')");
}
3. Add GraalPy plugins for additional Python packages (optional)
3. Add GraalPy plugins for additional Python packages (optional)
<plugin>
<groupId>org.graalvm.python</groupId>
<artifactId>graalpy-maven-plugin</artifactId>
<version>24.2.0</version>
<executions>
<execution>
<configuration>
<packages>
<!-- Select Python packages to install via pip. -->
<package>pyfiglet==1.0.2</package>
</packages>
</configuration>
<goals>
<goal>process-graalpy-resources</goal>
</goals>
</execution>
</executions>
</plugin>
or
plugins {
id("org.graalvm.python") version "24.2.0"
}
graalPy {
packages = setOf("pyfiglet==1.0.2")
}
Guides
Demos
Videos
Supercharge your Java Applications with Python!
Projects such as LangChain4j, Spring AI, and llama3.java got the Java community very excited about AI in the last year. The Python ecosystem also provides many powerful packages for data science, machine learning, and more. Wouldn't it be cool if you, as a Java developer, could benefit from this, too?
In this talk, we show how you can get started with GraalPy and use packages from the Python ecosystem. We also show some live demos and preview upcoming features that will improve the interaction between Java and native extensions that ship with popular Python packages.