2024年4月3日、Cloudflareは「Pyodide と WebAssembly を使用してワーカーに Python を導入する」(Bringing Python to Workers using Pyodide and WebAssembly)と題した記事を公開し、PythonをCloudflare Workersで使用可能にする新たな取り組みを発表した。この記事では、 Pyodideを用いてPythonをWebAssemblyに変換し、Cloudflareの分散ネットワーク上で実行できるようにする技術が詳細に説明されている。
PyodideとWebAssemblyの活用
この取り組みにより、開発者はPythonでCloudflare Workersを記述し、分散アプリケーションを構築することが可能になる。
今回Pythonランタイムとして選ばれたPyodideは、CPythonのWebAssemblyへの移植版であり、Webブラウザ内で完全に機能するPython環境を提供する。Pyodideは、PythonからJavaScript APIへの直接呼び出しを可能にする外部関数インターフェイス(FFI)も提供し、Pythonコードの実行環境として機能する。このように、Pyodideの導入は、PythonのコードをCloudflareのプラットフォーム上で効率良く動作させることを可能にする。
PyodideはWebAssemblyをターゲットにする様々な言語ランタイムの中で、動的リンクをサポートしている稀有な実装である。これにより、Pyodideを使用しているすべてのWorkersが同じプログラミング言語のランタイムコードフットプリントを共有することが可能になり、Cloudflareの環境で効率的に動作するようになった。
Python Workersの実装例
以下のコードスニペットは、Pythonを用いたCloudflare Workerの例を示している:
from js import Response
async def on_fetch(request, env):
return Response.new("Hello world!")
このコードは、PyodideによってWebAssemblyに変換され、Cloudflareの分散ネットワーク上で実行される。
参考資料
詳細情報は[Bringing Python to Workers using Pyodide and WebAssembly]を参照していただきたい。この記事ではPyodideを使用してCloudflare WorkersにPythonを統合するプロセスとその機能について詳しく説明している。