Python ワーカーが一般利用可能になりました

2026/09/21 22:38

Python ワーカーが一般利用可能になりました

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

Cloudflare は、Python Workers を正式に一般利用可能にし、同プラットフォームにおいて Python が完全にサポートされた一等言語として認識されるという転換点を示しました。この進歩により、開発者は Cloudflare 環境内でネイティブの Python アプリケーションを構築でき、不便な JavaScript グループコードや TypeScript バインディングの必要性が排除されました。リリースには、Workers AI、R2、D1、Hyperdrive、Durable Objects、Queues、Workflows というコアサービスとのシームレスな統合が含まれ、データベースおよび AI モデルへの直接アクセスを可能にしています。特に、FastAPI、Django、Flask といった人気フレームワークは、内蔵の ASGI/WSGI コネクタを使用してネイティブに動作し、標準ライブラリは fetch API を介して適切にルーティングされます。このイニシアチブは、WebAssembly POSIX スタブに関する以前の制限を解消し、Workers Connect API を介してソケットシステムコールを実装することで、PostgreSQL および MySQL に対する Hyperdrive サポートを実現しました。また、直近で承認された PEP 783 を活用して PyEmscripten の標準化を進め、ネイティブ C/C++/Rust 拡張子に関するクロスコンパイルの問題を解消しました。その結果、企業は既存の Python ワークロードをエッジ上で直接デプロイできるようになり、ハイブリッドコードベースを排除することでアーキテクチャが簡素化されました。今後の取り組みは、パフォーマンスとメモリ効率の向上、追加パッケージへのサポート拡大に焦点を当て、AI オケストレーション、Bluesky Jetstream を使用したリアルタイムストリーム処理、MCP サーバー、RAG システムなどでの生産準備型のパターンを言語変換なしで実現できるようにします。ドキュメントには、Cloudflare のほぼすべての製品について、TypeScript/JavaScript と並んで Python 例が追加されました。

本文

Cloudflare Workers で Python アプリケーションを実行可能に:一般利用開始

Cloudflare Workers ランタイム上で Python を完全にサポートする環境が一般利用(GA)を開始しました。TypeScript と同等の簡潔さで Python コードを記述し、Python パッケージのエコシステムをそのまま活用できるプラットフォームです。

GA 発表の意図と背景

  • 第一級言語としての認定
    Python が Cloudflare Workers プラットフォームにおいて、第一級かつ完全にサポートされる言語となりました。
  • エコシステムの統合
    • 既存のコード、ライブラリ、設計パターンの利用が可能に。
    • Workers AI、R2、D1、Hyperdrive、Durable Objects、Queues、Workflows など、プラットフォーム機能とシームレスに連携可能。
  • 人気フレームワークの実行
    FastAPI、Django、Flask などの代表的な Python フレームワークを実行可能。
  • Dynamic Workers の利用
    Dynamic Workers を介して、別のワーカー内で Python ワーカーを作成することも可能。

開発の歩みと技術的課題の解決

1. ランタイムへの統合

  • WebAssembly (Wasm) ベースの実装
    • 2018 年より Wasm サポートを開始し、コンパイル済み Python インタープリタを実行する環境を提供。
    • Pyodide を活用し、多様な Python アプリケーションの即時サポートを実現。
  • スケーラビリティ
    他のプラットフォーム同様「容易かつ高性能」な開発を可能にしつつ、無限スケーリングに対応できる最初のプラットフォームとして構築。

2. JavaScript 依存からの脱却(Type Conversion)

以前は Cloudflare バインディング(例:Queue)を使用する際、Python オブジェクトを明示的に TypeScript 型に変換する必要があり、コードが複雑化していました。

【従来の方法(Bridge コードが必要)】

from pyodide.ffi import to_js
import js

self.env.QUEUE.send(to_js({"key": "value"}, dict_converter=js.Object.fromEntries))

【現在の対応(Python 的アプローチ)】
タイプ変換プロセスをランタイムおよび SDK にカプセル化し、一行も JavaScript を書かずに以下のように記述可能にしました。

self.env.QUEUE.send({"key": "value"})

Web フレームワークの実行方法

ASGI / WSGI コンネクタの導入

Python ワーカーズ内で API サーバーを構築するには、

workers.asgi
および
workers.wsgi
コンネクタを使用します。Cloudflare Workers プラットフォーム自体が Web サーバーの役割を果たすため、Uvicorn や Gunicorn などの外部サーバー設定は不要です。

FastAPI(非同期)の実行

from fastapi import FastAPI
from workers import asgi

app = FastAPI()

@app.get("/")
async def root():
    message = "Hello, world!"
    return {"message": message}

class Default(WorkerEntrypoint):
    async def fetch(self, request):
        return await asgi.fetch(app, request, self.env)

Default = asgi.entrypoint(app)

Django(同期)の実行

from workers import WorkerEntrypoint, wsgi
from your_django_app.wsgi import app

Default = wsgi.entrypoint(app)

データベース連携:Hyperdrive のサポート

Python ワーカーズでは、現在 PostgreSQL や MySQL などのリレーショナルデータベースをHyperdriveを通じて直接使用可能です。

技術的背景(WebAssembly とソケット)

  • 課題
    WebAssembly サンドボックス内では標準的な POSIX システムコール(ソケット操作)が失敗する傾向があり、従来の TCP 接続は不可能でした。
  • 解決策
    Workers Connect API を使用し、ソケットシステムコールをカスタム実装しました。これにより、データベースドライバーは下流の実装を気にせず標準的な API で動作できます。

設定と利用例

wrangler
構成で Hyperdrive バインディングを設定後、標準的なドライバ(例:
aiomysql
)を使用します。

Wrangler.toml の設定例:

"hyperdrive": [
    {
        "binding": "HYPERDRIVE_MYSQL",
        "id": "<example id: 57b7076f58be42419276f058a8968187>",
    }
]

Python コード例:

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()
        await cur.close()
        conn.close()

エコシステムの拡大:WebAssembly とパッケージ

PyEmscripten の採用と標準化(PEP 783)

  • 制限の打破
    以前はネイティブ拡張子を持つパッケージが実行不可能で、手動でのクロスコンパイルが必要でした。現在はより広いパッケージを利用可能にしました。
  • プラットフォームの進化
    • PEP 783 を提案し承認され、Pyodide および WebAssembly 上の Python コミュニティ全体に利益をもたらすようにエコシステムを進化。
    • cibuildwheel
      に PyEmscripten サポートを追加し、パッケージメンテナーが容易に Wasm 環境向けパッケージを構築可能に。

AI エージェントとパイプラインの構築

Python の豊富なデータサイエンス/機械学習エコシステム(OpenAI, LangChain など)を Workers で活用できます。

ネットワークスタックの解決

  • 課題
    多くの AI ライブラリは外部 API への通信に HTTP クライアント(
    requests
    ,
    httpx
    )を依存しており、Wasm 環境では動作していませんでした。
  • 解決策
    低レベルソケット操作サポートの導入により、HTTP クライアントを JavaScript
    fetch API
    を介した直接ルーティングに対応させました。これにより、Python ワーカーズ内部でのネットワークスタックがシームレスに動作します。

Workers AI との連携

  • ネイティブ実行
    OpenAI, LangChain, MCP などのライブラリをネイティブで実行可能。
  • 推論方法
    • Cloudflare ネットワーク上の GPU を使用したサーバーレス推論(Workers AI)。
    • Cloudflare AI Gateway を介したプロキシ処理。

LangChain と Workers AI を組み合わせる例:

from langchain_cloudflare import ChatCloudflareWorkersAI
from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import PromptTemplate
from workers import Response, WorkerEntrypoint

class Default(WorkerEntrypoint):
    async def fetch(self, request):
        prompt = PromptTemplate.from_template(
            "In one sentence, describe a great day in the life of an {profession}."
        )
        llm = ChatCloudflareWorkersAI(
            model_name="@cf/meta/llama-3.3-70b-instruct-fp8-fast",
            binding=self.env.AI,
            max_tokens=64,
        )
        chain = prompt | llm | StrOutputParser()

        result = await chain.ainvoke({"profession": "electrician"})
        return Response.json({"result": result})

実装例とドキュメント

  • Python Workers Examples リポジトリ
    生産環境での利用パターンをまとめたサンプルコードが公開されています。

    • 非同期 AI オーケストレーション:Image-to-Image ジェネレーターの構築(Queue, Workflows, R2 を使用)。
    • リアルタイムストリーム処理:Bluesky Jetstream WebSocket と Durable Objects の組み合わせ。
    • MCP サーバー:公式 Python パッケージによるエッジデータへのアクセス提供。
    • RAG システム:Vectorize と Workers AI を利用した検索補完生成。
  • ドキュメントの更新
    Cloudflare 製品全体のドキュメントに Python コード例を追加。JavaScript、TypeScript、Python の切り替えに対応し、すべての製品で Python 例を継続的に提供します。

まとめ

Python ワーカーズは、**一般利用(GA)**を開始しました。TypeScript と同等の簡潔さでコードを書きつつ、豊富な Python エコシステムを活用できるプラットフォームです。これからの展開として、より高性能・メモリー効率の高い環境やサポートパッケージの拡大を計画しており、コミュニティと共に進化していく予定です。

同じ日のほかのニュース

一覧に戻る →

2026/09/22 5:58

輸入額が 800 ドル以下の小口免税措置の停止

## Japanese Translation: 個人処方箋輸入運動(CPPI)は、米国人がライセンス取得済みのカナダの薬局から処方薬を購入する権利を主張しており、これらの薬局が 100% の安全性記録を持つと述べている。この運動を支援することで、人々は健康を損なうことなく安価な医薬品にアクセスしながら資金を節約できる。CPPI は、公衆が即座に無料キャンペーンに参加することを招き、米国での医療費高騰に対する実用的な財務戦略として海外で医薬品を購入する原因を積極的に支持するために、事務所へ連絡すること(202-765-3290 または info@personalimportation.org(N.J. 08844, Hillsborough, 601 Rt. 206, Suite 26-423))を呼びかけている。

2026/09/22 7:33

データ保護委員会が位置情報の処理問題に対し、Google に4,030 万ユーロの制裁金科する

## 日本語翻訳: EU 欧州データ保護委員(DPC)は、GDPR ルールの遵守違反によりユーザの位置情報データを処理したことに伴い、Google アイルランドに巨額の 4030 ユーロの制裁金科しました。2020 年 2 月に開始された自主発議による調査および BEUC などの団体からの苦情に基づき、調査官らは 2018 年 5 月 25 日から 2020 年 2 月 4 日の間に発生した違反行為を特定しました。DPC は、Google が「Web & App Activity」と「Location History」の処理を法的かつ公正に行っておらず、また「Location Accuracy」に関する透明性および説明責任の義務も履行しなかったと結論付けました。コミッショナーズ Dr Des Hogan 氏、Mr Dale Sunderland 氏、Ms Niamh Sweeney 氏、副コミッショナー Graham Doyle 氏は、これらの無許可なデータ保持 practices がユーザが個人情報を制御する権利を損なう損失を増大させたことを指摘しました。したがって、Google は 2 つの特定の機能におけるデータの保持を停止し、6 ヶ月以内にすべての処理をコンプライアンスに合わせるよう命令されました。DPC は適時、本件の最終決定を発表する予定です。

2026/09/22 4:43

ビジュアルで解説するトランスフォーマー

## 日本語訳: 本稿の核心となるメッセージは、2017 年に論文「Attention is All You Need」によって紹介された Transformer アーキテクチャが、GPT、Llama、Gemini のような主要な AI モデルの基盤となるエンジンとして機能しているという点である。このアーキテクチャはテキスト、音声、画像認識、タンパク質予測、ゲームプレイなど多岐にわたる分野で活用されている。これらの大規模システムを抽象的に記述するのではなく、解説ではアクセス可能な GPT-2(小規模)モデル——パラメータ数が 1 億 2400 万、語彙数は 50,257 のユニークなトークン、そして 12 の Transformer ブロックを持つもの——を用いて、Transformer が実際どのように動作するかを具体的に示す。このアーキテクチャは、(1) エンベディメント:文字列の生のトークンをトークナイゼーション、エンベッディング、および位置符号化を通じて数値データに変換する部分、(2) Transformer ブロック:マルチヘッド自己注意機構(クエリ、キー、バリュー行列を 12 ヘッドにわたって使用)と MLP レイヤーを用い、データを順次処理しつつ、マスキングによって未来のトークンへのアクセスを防ぐ機構、(3) 出力確率:表現を高次元空間に射影し、それを確率に変換することで次の単語を数学的に予測する部分——という 3 つの不可欠な要素に依存している。これらの概念は、自然言語理解から複雑なタンパク質予測に至るまでの分野を革命させたが、「Transformer Explainer」という実装により、開発者や学生にとって具体的な形を与えられている。これは Andrej Karpathy の nanoGPT プロジェクトから派生したライブウェブ実装であり、高度なバックエンド知識を必要とせず、理論的研究と実践的な応用の間のギャップを埋める。このツールは、これらの数学的射影がリアルタイムでどのようにテキストを生成するかを可視化することを可能にする。ジョージア工科大学の Aeree Cho、Grace C. Kim、Alexander Karpekov、Alec Helbling、Jay Wang、Seongmin Lee、Benjamin Hoover、Polo Chau の開発により、プロジェクトは性能向上のための追加機能としてレイヤー正規化、ドロップアウト、レシデュアル接続も組み込んでいる。