Python Workers در Cloudflare به دسترسی عمومی رسید؛ اجرای CPython با WebAssembly

چرا مهم است

اگر با FastAPI کار می‌کنی، این خبر یک محیط اجرا برای برنامه‌ات را معرفی می‌کند. در Python Workers، برنامه به‌شکل فایل‌های Python ارسال می‌شود، اما CPython در قالب WebAssembly و درون V8 اجرا می‌شود.

قبل از خواندن، این‌ها را بدان۴ مفهوم
CPython

پیاده‌سازی مرجع Python که عمدتاً با زبان C نوشته شده و برنامه‌های Python را اجرا می‌کند.

بیشتر درباره این مفهوم

WebAssembly

قالبی برای اجرای برنامه‌های تبدیل‌شده با compiler در محیط‌های پشتیبان، از جمله مرورگر؛ زبان‌های مختلف می‌توانند با compiler به آن تبدیل شوند.

بیشتر درباره این مفهوم

V8

موتور اجرای JavaScript و WebAssembly که در محیط‌های مختلف به کار می‌رود.

بیشتر درباره این مفهوم

Pyodide

پروژه‌ای که با استفاده از WebAssembly امکان اجرای Python در مرورگر را فراهم می‌کند.

بیشتر درباره این مفهوم

Python Workers در Cloudflare اکنون در دسترس عموم قرار دارد و موضوع قسمت ۵۶۸ پادکست Talk Python to Me است. توضیح این قسمت بر یک پرسش تمرکز دارد: برنامهٔ Python دقیقاً کجا و چگونه اجرا می‌شود؟ در این مدل، برنامهٔ FastAPI به‌صورت فایل‌های معمولی Python ارسال می‌شود، اما محیط اجرای آن CPython تبدیل‌شده به WebAssembly با compiler است که درون V8 کار می‌کند. طبق معرفی این قسمت، این اجرا در بیش از ۳۵۰ موقعیت در سراسر جهان انجام می‌شود.

پایهٔ این ترکیب، Pyodide و Cloudflare Workers است. Pyodide امکان اجرای Python در مرورگر را فراهم کرده و Python Workers این مسیر را با محیط اجرای Cloudflare پیوند می‌دهد. نکتهٔ اصلی، تفاوت میان شکل ارسال برنامه و محیط اجرای آن است: فایل‌ها همچنان Python هستند، ولی CPython در قالب WebAssembly درون V8 اجرا می‌شود.

مهمان‌های این قسمت Hood Chatham، Gyeongjae Choi و Dominik Picheta از Cloudflare هستند. Hood و Gyeongjae نگهداری Pyodide را بر عهده دارند و Dominik کسی است که در ابتدا Python را روی Cloudflare Workers اجرا کرد.

نکته کلیدی

شکل فایل‌های برنامه را با محیط اجرای آن یکی نگیر. در مدل معرفی‌شده برای Python Workers، فایل‌های معمولی Python ارسال می‌کنی، ولی اجرای آن‌ها بر عهدهٔ CPython تبدیل‌شده به WebAssembly با compiler درون V8 است.

خواندن مقاله اصلی (در زبانه‌ی جدید باز می‌شود)
برچسب‌ها (۴)