ニュース

Cloudflare Workers RPC がPythonとJavaScriptを橋渡し

CloudflareのWorkers RPCがPythonとJavaScript間で動作するようになり、スキーマや依存関係、追加設定なしでメソッド呼び出しやオブジェクト共有が可能に。

August 3, 2026· 1 min read· 出典: The Cloudflare Blog
Cloudflare Workers RPC がPythonとJavaScriptを橋渡し

CloudflareはWorkers RPCシステムをPythonとJavaScript間で動作するよう拡張し、クロス言語通信の一般的な摩擦を解消しました。以前はWorkers RPCはJavaScript専用で、Cap'n Proto上に構築されていました。現在は、Python WorkerがJavaScript Workerのメソッドを呼び出し、その逆も可能で、型変換は自動的に処理されます。

鍵となるのはPyodideのForeign Function Interface(FFI)で、PythonとJavaScriptの型を変換します。int、float、bool、dict、listなどの標準型では、マッピングは単純です。カスタムオブジェクトの場合、Pyodideは境界を越えて呼び出しを転送するプロキシを作成します。Cloudflareはworkers-runtime-sdk Pythonパッケージを介してカスタム変換レイヤーを追加し、直接のPython相当物がないRequestResponseなどのWeb APIオブジェクトを処理します。

つまり、add(a, b)のようなメソッドを持つTypeScript Workerを作成し、Pythonからawait rpc.add(42, 144)で呼び出すことができます。protobufスキーマもカスタムAPIも依存関係も不要です。2つを接続するにはService bindingだけが必要です。

このシステムは、Structured Cloneable型、関数、さらには例外を境界を越えて渡すことをサポートしています。RPC呼び出しは通常同じスレッドで実行されるため、パフォーマンスのオーバーヘッドはほぼゼロです。実装はworkerdworkers-runtime-sdkでオープンソース化されています。

実用的なユースケースの1つ:JavaScriptからPythonパッケージを使用することです。例えば、Python WorkerからPygmentsの構文ハイライトメソッドを公開し、JavaScriptから呼び出すことで、別のマイクロサービスを構築せずに両エコシステムの利点を得られます。

これはエッジでのポリグロット開発への重要な一歩ですが、トレードオフがないわけではありません。型変換レイヤーは複雑さを追加し、開発者は型が言語間でどのようにマッピングされるかを認識する必要があります。それでも、すでにCloudflare Workersに投資しているチームにとって、これは言語を混在させる大きな障壁を取り除きます。

Python Workerで定義されたメソッドをJavaScript Workerから呼び出し、その逆も可能になりました。すべてがそのまま動作します。
Manul X 編集部