Snapshot of oracle/graalpython: 1.7k★, Python, Backend. GraalPy – A high-performance embeddable Python 3 runtime for Java
Snapshot summary built from the project's own GitHub metadata — there's no written TopGit review yet. The page will update automatically when a full review is published.
WHY NO REVIEW YET
TopGit writes full reviews for the most-starred, most-requested repositories. This page is a snapshot until then — see the READ ME tab for the original README in full.
GraalPy is a high-performance implementation of the Python language for the JVM built on GraalVM.
GraalPy is a Python 3.13 compliant runtime.
It has first-class support for embedding in Java and can turn Python applications into fast, standalone binaries.
GraalPy is ready for production running pure Python code and has experimental support for many popular native extension modules.
Contributing
This project welcomes contributions from the community. Before submitting a pull request, please review our contribution guide.
If you’re considering contributing to this repository, you need to sign the Oracle Contributor Agreement before we can merge your changes.
Also, review the Code of Conduct for contributors.
Why GraalPy?
Low-overhead integration with Java and other languages
Use Python in Java applications on GraalVM JDK, Oracle JDK, or OpenJDK
Use JVM tools like Maven, JFR, or GraalVM Native Image
Manage Python libraries' system access thanks to GraalPy's Java-based emulation of Python OS APIs
Compatible with the Python ecosystem
Use almost any standard Python feature, the CPython tests run on every commit and pass ~85%
See if the packages you need work according to our Python Compatibility Checker
Support for native extension modules is considered experimental, but you can already install packages like NumPy or PyTorch; run Hugging Face models like Stable Diffusion or GPT
We run the tests of the most depended on PyPI packages every day.
For 93% of those 600 packages a recent version can be installed on GraalPy and GraalPy passes over 65% of all tests of all packages combined.
We assume that CPython not passing 100% of all tests is due to problems in our infrastructure that may also affect GraalPy.
Packages where CPython fails all tests are marked as "not tested" for both CPython and GraalPy.
Runs Python code faster
Pure Python code is often faster than on CPython after JIT compilation
C extension performance is near CPython, but varies depending on the specific interactions of native and Python code
GraalPy is geomean ~4x faster than CPython on the official Python Performance Benchmark Suite
Benchmarks run via pip install pyperformance && pyperformance run on each of CPython and GraalPy.
Each interpreter was installed via pyenv.
Getting Started
Embedding GraalPy in Java
GraalPy is available on Maven Central for inclusion in Java projects.
Refer to our embedding documentation for more details.
GraalPy should in many cases work as a drop-in replacement for CPython.
You can use pip to install packages as usual.
Packages with C code usually do not provide binaries for GraalPy, so they will be automatically compiled during installation.
This means that build tools have to be available and installation will take longer.
We provide Github actions to help you build binary packages with the correct dependencies.
Thanks to our integration with GraalVM Native Image, we can deploy Python applications as standalone binary, all dependencies included.
See the complete installation guide for detailed instructions.
Using GraalPy in Github Actions
The setup-python action supports GraalPy:
- name: Setup GraalPy
uses: actions/setup-python@v5
with:
python-version: graalpy # or graalpy24.2 to pin a version
Migrating Jython Scripts to GraalPy
Most existing Jython code that uses Java integration will be based on a stable Jython release—however, these are only available in Python 2.x versions.
To migrate your code from Python 2 to Python 3, follow the official guide from the Python community.
GraalPy provides a special mode to facilitate migration.
Quick Setup:
Download a GraalPy JVM distribution: graalpy-jvm-XX.Y.Z-<platform>.tar.gz
Extract and add to PATH
Run with: graalpy --python.EmulateJython
See the complete migration guide for detailed instructions.
Examples
Java AWT app with Python graph library using JBang | Standalone binary of a Python game by Joey Navarro with all dependencies included.
Documentation
GraalPy Quick Reference Sheet should help you get started.
More GraalPy-specific user documentation is available in docs/user.
General documentation about polyglot programming and language embedding is available on the GraalVM website.
Community
The best way to get in touch with us is to join the #graalpy channel on GraalVM Slack or tweet us.
Security
Consult the security guide for our responsible security vulnerability disclosure process.
License
This GraalVM implementation of Python is Copyright (c) 2017, 2026 Oracle and/or its affiliates and is made available to you under the terms the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl/.
This implementation is in part derived from and contains additional code from 3rd parties, the copyrights and licensing of which is detailed in the LICENSE and THIRD_PARTY_LICENSE files.
The most recent commit recorded on oracle/graalpython was 3 months ago, based on the GitHub push timestamp. The repository has 164 forks — one of the better signals of community interest.
How does oracle/graalpython compare to other Backend projects?
oracle/graalpython is tracked by TopGit in the Backend category, with 1.7k GitHub stars and written in Python. Browse the Backend topic page on TopGit to compare it against similar projects by stars and activity.
How many stars does oracle/graalpython have?
oracle/graalpython has 1.7k GitHub stars — refresh the page for the live number, or check github.com/oracle/graalpython. TopGit mirrors GitHub's count but does not claim minute-by-minute accuracy.
What is oracle/graalpython?
oracle/graalpython (oracle/graalpython) is a Python project on GitHub. From the project's own README: GraalPy – A high-performance embeddable Python 3 runtime for Java
What language is oracle/graalpython written in?
oracle/graalpython is written primarily in Python. GitHub's language field is based on the largest share of bytes in the default branch.
What topics is oracle/graalpython associated with?
GitHub's repository topics for oracle/graalpython: "embeddable", "graalvm", "java", "python", "python3". TopGit's editorial category is Backend.
Why is oracle/graalpython categorized under Backend?
TopGit places oracle/graalpython in the Backend category based on its GitHub topics and description (tagged: "embeddable", "graalvm", "java"). Categories are assigned from real repository metadata, not editorial guesswork.
Read full README in the tab above.
Want a second opinion on graalpython?
Ask an AI that can read this page — one click and you get its take on graalpython.