Cloudflare перевела Python Workers в GA: serverless на Python с поддержкой ИИ-библиотек

Cloudflare перевела Python Workers в GA: serverless на Python с поддержкой ИИ-библиотек

Cloudflare объявила, что Python Workers, среда для запуска Python-приложений в рантайме Cloudflare Workers, представленная два года назад, стала общедоступной (GA). Это означает, что Python теперь полноценный, полностью поддерживаемый язык на платформе Cloudflare Developer Platform: код и библиотеки на Python можно напрямую подключать к Workers AI, R2, D1, Hyperdrive, Durable Objects, Queues, Workflows и остальным сервисам платформы, а также запускать внутри Python Workers популярные фреймворки FastAPI, Django и Flask.

Python Workers работают поверх Pyodide, скомпилированного в WebAssembly интерпретатора Python, который стало возможно запускать благодаря поддержке WebAssembly в Workers с 2018 года. К релизу GA Cloudflare убрала главный источник ошибок: раньше для обращения к привязкам платформы (например, к очереди Queue) Python-объекты приходилось вручную конвертировать в объекты TypeScript через glue-код на границе RPC, это требовало от Python-разработчиков держать в голове JavaScript-окружение и было частой причиной ошибок как у людей, так и у ИИ-агентов. Теперь вся конвертация типов инкапсулирована внутри рантайма и Python SDK, и привязки можно использовать Pythonic-способом без единой строки JavaScript.

Для веб-фреймворков Cloudflare добавила встроенные коннекторы: пакет workers.asgi запускает асинхронные приложения вроде FastAPI, а workers.wsgi, синхронные, такие как Django. Коннекторы выступают тонким мостом, который переводит входящий JavaScript-запрос в стандартные структуры WSGI/ASGI и отдаёт ответ обратно с минимальными накладными расходами; сам рантайм Workers при этом выполняет роль веб-сервера вместо Uvicorn или Gunicorn.

Ранее Python Workers не поддерживали TCP-сокеты, из-за чего были недоступны драйверы реляционных баз данных: внутри песочницы WebAssembly обычные POSIX-вызовы сокетов заглушены и всегда завершаются ошибкой. Cloudflare реализовала системные вызовы сокетов через собственный Workers connect API, транслируя операции Python-сокетов в вызовы JavaScript на уровне системных вызовов, это сделало возможной интеграцию с Hyperdrive для подключения к PostgreSQL и MySQL драйверами вроде aiomysql и asyncpg без изменений в самих драйверах.

Отдельная проблема, экосистема пакетов: любые Python-библиотеки с нативными расширениями на C/C++/Rust нужно кросс-компилировать в WebAssembly, а стандартного способа для этого не существовало, и команде Cloudflare приходилось вручную собирать и хостить кастомные WebAssembly-сборки. Чтобы решить это на уровне экосистемы, а не только для своей платформы, Cloudflare предложила PEP 783, стандарт платформы PyEmscripten для запуска Python в браузерных рантаймах. После более чем года обсуждения предложение приняли: теперь мейнтейнеры пакетов могут собирать и публиковать сборки для PyEmscripten, которые будут работать во всех средах, поддерживающих этот стандарт. Cloudflare также стабилизировала цепочку сборки Pyodide и добавила поддержку PyEmscripten в cibuildwheel.

Отдельно решена проблема ИИ-библиотек: openai, langchain и mcp полагаются на HTTP-клиенты вроде requests или httpx, которые из-за отсутствия низкоуровневых сокетов раньше не работали в Python Workers. Cloudflare внесла изменения в апстрим этих клиентов, чтобы они маршрутизировали запросы напрямую через JavaScript fetch API в среде WebAssembly. В сочетании с поддержкой сокетов это позволяет запускать openai, langchain и mcp нативно внутри Python Workers, в том числе для serverless-инференса на GPU через Workers AI или через Cloudflare AI Gateway.

Ключевые факты

  • Python Workers, представленные два года назад, получили статус GA, Python стал языком первого класса на Cloudflare Developer Platform
  • Привязки платформы (R2, D1, Hyperdrive, Durable Objects, Queues, Workflows, Workers AI) теперь работают из Python без ручной конвертации объектов в JavaScript
  • Появилась нативная поддержка веб-фреймворков FastAPI, Django и Flask через коннекторы workers.asgi и workers.wsgi
  • Реализована поддержка TCP-сокетов, что дало доступ к PostgreSQL и MySQL через Hyperdrive напрямую из Python-драйверов
  • Cloudflare предложила и провела через процесс стандартизации PEP 783 (платформа PyEmscripten) и добавила рабочую поддержку ИИ-библиотек openai, langchain и mcp

Почему это важно

Python два года был на Cloudflare Workers вторым языком: часть возможностей платформы требовала ручной конвертации объектов в JavaScript, а сетевые библиотеки и драйверы баз данных не работали из-за отсутствия поддержки TCP-сокетов внутри WebAssembly-песочницы. С релизом GA эти ограничения сняты: привязки платформы доступны из Python напрямую, заработали драйверы PostgreSQL и MySQL через Hyperdrive, а HTTP-клиенты вроде requests и httpx переведены на JavaScript fetch API, что открыло путь ИИ-библиотекам openai, langchain и mcp.

Кому это важно

В первую очередь, разработчикам на Python, которые хотят разворачивать веб-сервисы на FastAPI, Django или Flask и ИИ-агентов на langchain/openai в serverless-инфраструктуре без отдельного сервера и без переключения на JavaScript. Также важно мейнтейнерам Python-пакетов с нативными C/C++/Rust-расширениями: принятый Cloudflare стандарт PEP 783 даёт им путь собирать WebAssembly-сборки, которые заработают не только в Python Workers, но и в любой среде, поддерживающей PyEmscripten.

Как это применить

Существующее FastAPI- или Django-приложение подключается через пакеты workers.asgi (для ASGI, например FastAPI) или workers.wsgi (для WSGI, например Django), достаточно нескольких строк для точки входа, без запуска Uvicorn или Gunicorn, поскольку роль веб-сервера берёт на себя сам рантайм Workers. Для баз данных нужно настроить привязку Hyperdrive в конфигурации Wrangler и подключаться обычными драйверами вроде aiomysql. Для ИИ-агентов доступны стандартные библиотеки openai, langchain и mcp, которые можно совмещать с Workers AI для инференса на GPU в сети Cloudflare или проксировать через Cloudflare AI Gateway.

Можно ли доверять

Материал, официальный анонс Cloudflare на её собственном блоге, без указания имени автора: все формулировки идут от лица компании («мы»). Технические детали (привязки платформы, коннекторы asgi/wsgi, реализация сокетов через Workers connect API, номер PEP 783) описаны конкретно и проверяемы по документации Cloudflare; источник не приводит ни ценовых условий, ни бенчмарков производительности Python Workers относительно JavaScript-версии, ни списка компаний, уже использующих Python Workers в продакшене, эти данные в посте отсутствуют.

Риски и подводные камни

GA-статус не отменяет технических ограничений WebAssembly-песочницы: пакеты с нативными расширениями на C/C++/Rust по-прежнему нужно кросс-компилировать под WebAssembly, а стандарт PyEmscripten, через который это предлагается делать, ещё только внедряется в экосистему, сама Cloudflare пишет, что охват пакетов пока неполный. В посте нет ни данных о производительности и холодном старте по сравнению с Workers на JavaScript, ни информации о стоимости и лимитах использования Python Workers, что затрудняет оценку рисков перед переносом продакшен-нагрузки.