Python resmi jadi bahasa kelas satu di Cloudflare Workers. Pengumuman generally availability itu dipublikasikan di blog Cloudflare pada 21 September 2026, ditandatangani tiga engineer: Gyeongjae Choi, Dominik Picheta, dan Hood Chatham. Yang berubah bukan cuma status rilis, tapiseluruh pengalaman menulis backend Python di edge: binding Cloudflare bisa dipakai langsung tanpa kode tempel JavaScript, framework seperti FastAPI dan Django bisa jalan apa adanya, dan driver database PostgreSQL serta MySQL akhirnya bisa jalan di runtime yang dulu tidak punya socket sama sekali.
TL;DR
- Python resmi menjadi bahasa kelas satu di Cloudflare Workers dengan pengumuman generally availability pada 21 September 2026.
- Binding Cloudflare kini bisa dipakai langsung dari Python tanpa konversi tipe eksplisit seperti to_js, sehingga tidak perlu menulis kode JavaScript tempel.
- Aplikasi FastAPI, Django, dan Flask dapat langsung dijadikan Worker lewat connector ASGI dan WSGI yang tersedia bawaan.
- Driver database PostgreSQL dan MySQL seperti asyncpg dan aiomysql kini bisa berjalan di Workers berkat implementasi socket system call di atas Workers connect API untuk Hyperdrive.
- Paket Python dengan native extension tetap harus punya build PyEmscripten/Pyodide, dan model eksekusi edge tanpa state in-memory antar request tetap perlu dipertimbangkan sebelum migrasi.
Bagi developer Indonesia yang stack-nya Python (Django untuk backend, FastAPI untuk API internal, atau script AI yang butuh inference murah), ini mengubah peta pilihan infrastruktur edge. Artikel ini merangkum apa yang benar-benar baru, batasan yang masih ada, dan kasus pakai yang masuk akal.
Dari Eksperimen Dua Tahun Lalu ke First-Class Language
Python Workers pertama kali diperkenalkan dua tahun sebelum pengumuman GA. Fondasinya adalah WebAssembly: runtime Workers sudah mendukung Wasm sejak 2018, sehingga strategi Cloudflare adalah menjalankan interpreter Python yang dikompilasi ke Wasm lewat Pyodide. Target yang mereka nyatakan sejak awal: membuat menulis Worker dalam Python sama mudahnya dengan TypeScript, dan membuat ekosistem paket Python "just work".
GA artinya kemampuan itu sudah produksi-ready untuk semua orang, bukan preview lagi. Secara platform, Python kini bisa disandingkan dengan TypeScript sebagai bahasa utama di Cloudflare Developer Platform, dan dapat menyambung ke Workers AI, R2, D1, Hyperdrive, Durable Objects, Queues, Workflows, sampai fasilitas Dynamic Workers yang memungkinkan satu Worker membuat Python Worker lain di dalamnya.
Binding Kini Native: Selamat Tinggal Glue Code to_js
Masalah terbesar Python Workers versi awal adalah lapisan perbatasannya. Semua binding Cloudflare berbicara dalam tipe data JavaScript, jadi pengembang Python harus mengkonversi objek secara eksplisit di setiap RPC. Contoh dari blog resminya, mengirim dictionary Python ke Cloudflare Queue dulu butuh:
from pyodide.ffi import to_js
import js
self.env.QUEUE.send(to_js({"key": "value"}, dict_converter=js.Object.fromEntries))
Baris seperti itu terlihat sepele, tapi Cloudflare menyebutnya sumber error yang umum, baik untuk manusia maupun untuk AI agent yang menulis kode. Dengan GA, seluruh konversi tipe dibungkus di dalam runtime dan SDK Python. Versi bersihnya tinggal:
self.env.QUEUE.send({"key": "value"})
Artinya semua binding bisa dipakai secara pythonic tanpa menulis satu baris JavaScript pun. Ini perubahan developer experience paling konkret dari rilis tersebut.
FastAPI, Django, Flask: Connector ASGI dan WSGI Bawaan
Fitur yang paling banyak dibicarakan komunitas: aplikasi web framework yang sudah ada bisa langsung dijadikan Worker. Asumsikan ada aplikasi FastAPI biasa yang biasanya dijalankan dengan uvicorn. Di Python Workers, yang perlu ditambah hanya jembatan kecil:
from workers import asgi
class Default(WorkerEntrypoint):
async def fetch(self, request):
return await asgi.fetch(app, request, self.env)
# atau ekuivalennya
Default = asgi.entrypoint(app)
Untuk aplikasi sinkron seperti Django, tersedia workers.wsgi dengan pola yang sama. Secara internal, Workers-lah yang berperan sebagai web server: jaringan global Cloudflare menangani koneksi masuk, load balancing, dan scaling, sementara connector ASGI/WSGI cuma menerjemahkan request JavaScript menjadi struktur yang dipahami aplikasi Python. Cloudflare menegaskan connector ini bekerja untuk framework apa pun yang memakai antarmuka WSGI atau ASGI, bukan hanya tiga yang disebut di judul.
Hyperdrive: Driver Database Nyasar Lewat Sistem Operasi Palsu
Bagian yang secara teknis paling menarik adalah dukungan database relasional. Driver Python seperti asyncpg dan aiomysql butuh socket TCP. Di dalam sandbox WebAssembly, sistem panggilan POSIX untuk jaringan normalnya adalah stub yang selalu gagal, jadi dulu mustahil memasang database dari Worker Python.
Cloudflare menyelesaikannya dengan mengimplementasikan socket system call di atas Workers connect API. Ketika driver membuka koneksi, operasinya diterjemahkan menjadi panggilan JavaScript yang sesuai di runtime. Karena penerjemahannya terjadi di level system call, driver tidak perlu tahu sama sekali bahwa ia sedang tidak berjalan di Linux biasa. Hasilnya, Hyperdrive bisa dipakai dengan kode yang sangat konvensional:
import aiomysql
from workers import WorkerEntrypoint
class Default(WorkerEntrypoint):
async def fetch(self, request):
hd = self.env.HYPERDRIVE_MYSQL
conn = await aiomysql.connect(
host=hd.host, port=int(hd.port),
user=hd.user, password=hd.password,
db=hd.database, ssl=None)
cur = await conn.cursor()
await cur.execute("SELECT username FROM user")
r = await cur.fetchall()
cur.close(); conn.close()
Binding-nya didefinisikan di konfigurasi Wrangler seperti biasa lewat blok hyperdrive dengan id binding.
Ekosistem Paket Wasm: PEP 783 dan PyEmscripten
Kelemahan klasik Python-on-Wasm adalah paket dengan ekstensi C/C++/Rust: semuanya harus dikompilasi silang ke WebAssembly, dan sebelumnya tidak ada standar untuk itu. Cloudflare harus mengompilasi dan meng-hosting paket tertentu secara manual, yang membatasi jumlah paket yang bisa dipakai. Solusi yang dibawa ke GA ini bersifat upstream: mereka mengusulkan PEP 783, standardisasi platform runtime Python-di-browser yang disebut PyEmscripten. Setelah lebih dari setahun diskusi, PEP tersebut diterima, sehingga maintainer paket bisa membangun dan menerbitkan wheel untuk satu platform yang berlaku di semua lingkungan yang mengimplementasikannya.
Cloudflare juga menstabilkan toolchain build Pyodide agar bisa dipakai maintainer mana pun, dan menambahkan dukungan platform PyEmscripten ke cibuildwheel, tool CI yang sudah umum di ekosistem Python. Proses adopsinya bertahap, tapi arah standarnya sudah jelas, dan ini kabar baik untuk komunitas Python-on-Wasm secara umum di luar Cloudflare.
Kasus Pakai Paling Jelas: Agent dan Pipeline AI
Ekosistem data science dan machine learning membuat Python pilihan alami untuk agent AI, dan ini yang diposisikan Cloudflare sebagai kasus pakai utama. Hambatan lamanya: library seperti openai, langchain, dan mcp bergantung pada HTTP client (requests, httpx) yang dulu tidak jalan di Workers. Dua hal ditutup: kontribusi upstream supaya HTTP client itu merutekan request lewat JavaScript fetch API di lingkungan Wasm, plus dukungan socket low-level yang dibahas di bagian Hyperdrive. Efeknya, seluruh stack networking AI sekarang jalan native di Python Workers.
Di contoh blog-nya, sebuah Worker memanggil model Workers AI lewat langchain-cloudflare dengan model @cf/meta/llama-3.3-70b-instruct-fp8-fast, dan contoh lain memakai @cf/openai/gpt-oss-120b. Pola yang sama berlaku untuk inference di GPU jaringan Cloudflare atau proxy lewat AI Gateway.
💬 Komentar (0)
Belum ada komentar. Jadilah yang pertama! 💬