返回 文章 学习 CMS 文章

Cloudflare Python Workers 正式发布:Python 成为一等公民

Cloudflare Python Workers 结束两年预览正式 GA,Python 成为 Workers 平台一等公民。

CloudflarePythonWorkersWebAssembly
成长分 / 100 68 综合收获、行动、留存与影响

为什么值得读了解 Cloudflare 在服务端 Workers 平台上对 Python 的正式支持及其技术实现方式。

认识基于 Pyodide 和 WebAssembly 运行 Python 所带来的能力与限制。

关键洞察
  1. 经过两年预览,Cloudflare 的 Python Workers 现已正式发布,Python 成为 Cloudflare 开发者平台上的一等公民、完全受支持的语言。
  2. Cloudflare 通过 Pyodide 将 Python 编译为 WebAssembly,并在其基于 V8 的 workerd 运行时中运行。
  3. 由于 WebAssembly 虚拟机的限制,multiprocessing 和 threading 均无法正常工作。
转成行动

深入阅读

正文与原文对照

原文保真覆盖:全文原文字符:1957

Cloudflare Python Workers 现已正式发布(来源)。经过两年的预览,Cloudflare 在其服务端 Workers 平台上运行 Python 代码的支持如今已稳定:“Python 现已成为 Cloudflare 开发者平台上的一等公民,获得完整支持”。

其中一个有意思的地方在于它的工作方式。Cloudflare 是通过 Pyodide,在其基于 V8 的 workerd 运行时中运行编译为 WebAssembly 的 Python。

这也带来了一些限制,相关文档在此,其中最值得注意的是 multiprocessing 和 threading 在 WebAssembly 虚拟机中都无法使用。

其中一个特别有趣的细节是本地开发环境:他们的 pywrangler 开发工具(在 PyPI 上令人困惑地以 workers-py 的名字发布)会对其技术栈进行完整的本地模拟,包括在一个 123MB 的 workerd 二进制文件中,通过 V8 里的 WebAssembly 用 Pyodide 执行代码,这个文件在我这里最终落在了 node_modules/@cloudflare/workerd-darwin-arm64/bin/workerd。

Python Workers 代表着 Cloudflare 对更广泛的 Python 生态的一项重大投入。发布公告署名为 Gyeongjae Choi、Dominik Picheta 和 Hood Chatham,其中 Gyeongjae 和 Hood 都是 Pyodide 的核心维护者。