- Java向けの高性能な埋め込み可能 Python 3 ランタイム
- Javaから直接 Python パッケージをロードして利用可能
- 最新の Python AI およびデータサイエンスパッケージと互換性あり
- Graal JIT コンパイラにより、ネイティブコード並みの速度で Python を実行可能
- Jython ユーザー向けにアップグレードパスを提供
- Javaから Python スクリプトを使って Java クラスやフレームワークと相互作用可能
- GraalVM Native Image を使って Python アプリケーションを単一バイナリとしてパッケージ化可能
GN⁺の要約
- GraalPy は、Java 上で Python を高性能に実行できるランタイムを提供する
- Jython ユーザーに、モダンな Python 機能を使えるアップグレードパスを提供する
- GraalVM のポリグロットインターフェースにより、Python のデータサイエンスライブラリを Java アプリケーションへ容易に統合できる
- Python と Java の相互運用性を高め、開発者に柔軟性を提供する
- 類似の機能を提供するプロジェクトとしては、Jython と Py4J がある
3件のコメント
Hacker Newsの意見
GraalPyとJDK8を比較したベンチマーク結果を共有
GraalVMで大規模プロジェクトを実行しようとしたが、いくつか問題が発生
forkとexecveが欠落GraalVMがJava(またはScala)の関数をブリッジなしで直接呼び出せるなら、Sparkを使うプログラムで有用だろうという意見
Pythonの興味深い点は、MLツールチェーン、CUDA、Metal/MLX、pytorch、tensorflow、LLMエンコーダ/デコーダなどとの統合
ClojureでJava/Python統合をすでに実装した事例あり
DuckDBは現時点ではサポートされていないが、Pandasとmatplotlibはサポート済み
GraalPyがPython 3.11をターゲットにしていることを発見
GraalPyのユースケースに疑問を呈する声
GraalPyはGraalVMでしか動かないのか、それとも他のJVM実装でも可能なのかという質問
今やっているプロジェクトは、
pythonのnumpy、pandasで実装したものをjavaでやってくれという、あきれたプロジェクトです。今、最初から全部作り直しています。本当にありえないです。GraalPy でpandas、numpyがきちんとサポートされるなら、こんな無駄なことをしなくて済むかもしれませんね。ところがWindows環境ではVisual Studioへの依存があるんですね。c++のコンパイル環境のために。あと、発想はとても良いし便利なのですが、あまりにも巨大なエコシステムをどうやって失敗せずに完成させられるのか。少し心配でもありますし、本当に安定して信頼して使えるようになるのか疑問でもありますね。そうなってくれればいいのですが。もう少し確認してみたところ、私の理解に誤りがあったようです。gcc や vs への依存関係は、native image を使用する場合にのみ必要なのですね。