A Cloudflare anunciou a disponibilidade geral (GA) do Python Workers, dois anos após a primeira prévia da funcionalidade. Python agora está disponível junto com JavaScript e TypeScript na Developer Platform, com integrações para Workers AI, R2, D1, Hyperdrive, Durable Objects, Queues e Workflows, além de suporte nativo para FastAPI, Django e Flask.
A engenharia por trás do lançamento
Três avanços de engenharia tornaram o GA possível, sendo que dois deles vieram de fora da Cloudflare.
Padrão de empacotamento: Python Workers rodam no Pyodide (um runtime Python compilado para WebAssembly). Qualquer pacote com extensões em C, C++ ou Rust precisa ser compilado para WebAssembly, e até agora não havia uma forma padrão de fazer isso. A Cloudflare compilava e hospedava esses pacotes, limitando a disponibilidade. A empresa propôs a PEP 783, um padrão que normaliza uma plataforma para Python em runtimes de navegador chamada PyEmscripten, que foi aceita após mais de um ano de discussão. A Cloudflare também estabilizou a cadeia de compilação do Pyodide e adicionou suporte a PyEmscripten no cibuildwheel, permitindo que desenvolvedores compilem suas próprias wheels.
Ponte de sockets: Drivers como aiomysql e asyncpg usam o módulo socket da biblioteca padrão, que faz chamadas de sistema POSIX que são stubs dentro de uma sandbox WebAssembly. A Cloudflare implementou essas chamadas de sistema sobre a Workers connect API. A tradução acontece no nível de syscall, então drivers não precisam de alterações — isso é o que faz a integração com Hyperdrive funcionar.
Contribuições upstream para clientes HTTP: Bibliotecas como requests e httpx agora são roteadas através da API JavaScript fetch em ambientes WebAssembly, permitindo que OpenAI, LangChain e MCP rodem dentro de um Worker.
Melhorias na ergonomia
Os bindings também se tornaram mais pythônicos. Enviar um dicionário para uma Queue anteriormente exigia conversão via to_js com um conversor dict; agora a conversão de tipo acontece dentro do runtime e do SDK. Web frameworks chegam através de conectores em vez de um servidor, com workers.asgi e workers.wsgi traduzindo requisições JavaScript recebidas nas estruturas que aplicações WSGI e ASGI esperam — o argumento é que a plataforma já é o servidor web.
Reações da comunidade
As reações foram bastante divididas, focando menos nas funcionalidades e mais no que está embaixo delas.
Funding upstream: Um mantenedor do urllib3, illia-v, apontou que seu projeto recebeu grandes contribuições adicionando suporte a Pyodide e Emscripten, e depois suporte JSPI, o que tornou tudo isso possível. No entanto, o financiamento foi para o contribuidor que implementou, não para os mantenedores que ficam responsáveis pelo suporte futuro:










