Cloudflare Python Workers יצאו לתפוצה כללית
קלאודפלייר הכריזה שהתמיכה ב-Python בפלטפורמת ה-Workers שלה יצאה לתפוצה כללית (GA), אחרי כשנתיים של פריוויו. השפה רצה כ-WebAssembly דרך Pyodide בתוך סביבת הריצה workerd המבוססת V8, מגבלה מרכזית: multiprocessing ו-threading לא פועלים בסביבת ה-WebAssembly.
קלאודפלייר הודיעה כי התמיכה שלה ב-Python בפלטפורמת ה-Workers — שירות ה-Serverless בענן שלה להרצת קוד בקצה הרשת — יצאה לתפוצה כללית (General Availability), לאחר תקופת פריוויו שנמשכה כשנתיים. כך דיווח Simon Willison בבלוג שלו, שציטט את ניסוח ההודעה הרשמית: "Python is now a first-class, fully supported language on the Cloudflare Developer Platform" ("פייתון היא כעת שפה נתמכת באופן מלא ושוות מעמד בפלטפורמת המפתחים של קלאודפלייר").
איך זה עובד בפועל
הפרט הטכני המעניין, לפי הבלוג, נוגע לאופן שבו קלאודפלייר מריצה את קוד ה-Python. במקום להריץ אינטרפרטר Python רגיל, החברה מקמפלת את השפה ל-WebAssembly באמצעות פרויקט הקוד הפתוח Pyodide, ומריצה אותה בתוך workerd — סביבת הריצה הפנימית של קלאודפלייר המבוססת על מנוע ה-V8 של גוגל (אותו מנוע שמריץ JavaScript בכרום). כלומר, קוד Python "רגיל" רץ בפועל כ-WebAssembly בתוך סביבת JavaScript.
לגישה הזו יש מחיר: לפי התיעוד של קלאודפלייר, שאליו הפנה הבלוג, multiprocessing ו-threading אינם פועלים בסביבת ה-WebAssembly. מדובר במגבלה משמעותית עבור מפתחים שרגילים להשתמש בהם ב-Python לצורך עיבוד מקבילי, ולכן קוד שמסתמך על יכולות אלו ידרוש התאמה מחדש לפני שיוכל לרוץ על הפלטפורמה.
סביבת הפיתוח המקומית
נקודה נוספת שעליה הצביע וויליאמסון היא כלי הפיתוח המקומי של קלאודפלייר, pywrangler (המופץ ב-PyPI תחת השם המבלבל workers-py). הכלי מריץ סימולציה מקומית מלאה של כל הסביבה — כולל הרצת הקוד באמצעות Pyodide בתוך WebAssembly בתוך V8 — הכל בתוך קובץ הרצה (binary) של workerd במשקל 123MB. אצל וויליאמסון עצמו, כך כתב, הקובץ הזה הגיע לנתיב node_modules/@cloudflare/workerd-darwin-arm64/bin/workerd.
מי מאחורי הפרויקט
הודעת ההשקה מיוחסת לשלושה אנשים: Gyeongjae Choi, Dominik Picheta ו-Hood Chatham. שניים מהם, Gyeongjae Choi ו-Hood Chatham, הם מתחזקי ליבה (core maintainers) של פרויקט Pyodide עצמו — עובדה שמעידה, ככל הנראה, על מעורבות ישירה של אנשי הפרויקט הקוד-פתוח בפיתוח האינטגרציה עם קלאודפלייר, ולא רק על שימוש חיצוני בכלי קיים.
למה זה חשוב
המעבר מפריוויו לתפוצה כללית מסמן, ככל הנראה, שקלאודפלייר רואה בתמיכה ב-Python השקעה ארוכת טווח בפלטפורמת המפתחים שלה, ולא רק ניסוי טכנולוגי. עבור מפתחי Python, המשמעות היא אפשרות להריץ קוד בשרתי הקצה (edge) של קלאודפלייר — הפרוסים גיאוגרפית קרוב למשתמשים — לצד JavaScript ו-Rust שנתמכים כבר זמן רב יותר בפלטפורמה. יחד עם זאת, המגבלות על multiprocessing ו-threading אומרות שלא כל אפליקציית Python קיימת תתאים להרצה כפי שהיא, ומפתחים שרוצים לנצל את היכולת יצטרכו לבדוק תאימות מראש.