Cloudflare WorkersがPythonをサポート、WebAssembly版Pythonランタイムの「Pyodide」を採用で
今回は「Cloudflare WorkersがPythonをサポート、WebAssembly版Pythonランタイムの「Pyodide」を採用で」についてご紹介します。
関連ワード (工夫、開始、開発等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
Cloudflareは、CDNエッジでJavaScriptランタイムによるアプリケーション実行基盤を提供する「Cloudflare Workers」で、Python言語のサポートをオープンベータとして開始したと発表しました。
これによりCloudflare Workers上でPythonを用いたアプリケーションの構築が可能になります。
Introducing Cloudflare Workers in Python, now in open beta! We've revamped our systems to support Python, from the runtime to deployment. Learn about Python Worker's lifecycle, dynamic linking, and memory snapshots in this post. https://t.co/R3a6bLKlSd #DeveloperWeek
— Cloudflare (@Cloudflare) April 2, 2024
Cloudflare Workersは、Googleが開発するオープンソースのJavaScriptエンジンである「V8」を用いることで、CDNエッジでJavaScriptのアプリケーション実行基盤を実現しています。
今回のCloudflare WorkersによるPythonサポートは、このV8エンジンで実行可能なWebAssemblyの上にWebAssembly版Pythonランタイムである「Pytodide」を採用することで実現しています。
Cloudflare Workers上でWebAssemblyのPythonランタイムを実行
Pyodideは、もともとMozillaが主導して始められたWebAssembly版のPythonランタイムです。
参考:PythonインタプリタをWebAssemblyへコンパイル、Webブラウザで稼働するPython環境「Pyodide」。Mozillaが開発中
オリジナルのPython言語のインタプリタはC言語で書かれており、そのため一般にこのPythonインタプリタは「CPython」と呼ばれています。このCPythonのソースコードがWebAssemblyでコンパイル可能なように最小限の変更を加え、さらにスタンドアロンのWebAssemblyランタイムで実行可能なようにWASI(WebAssembly System Interface)に対応させ、Emscriptenでコンパイルしたものが「Pyodide」です。
これにAPIや非同期処理などのいくつかの工夫を加えてCloudflare Workers上で実行可能にしたものが、今回のCloudflare WorkersによるPythonのサポートとなるわけです。これらの技術的な工夫については「Bringing Python to Workers using Pyodide and WebAssembly」で詳しく説明されているため、興味のある方はぜひこちらをご覧ください。