概要
- AIワークロードの増加に伴い、WebAssembly上でのPythonサポート需要が急増
- Wasmer Edge(Beta)でWebAssemblyとWASIXによるフルPythonサポートを実現
- numpyやpandasなどのネイティブモジュール対応、動的リンクやlibffiもサポート
- FastAPIやDjangoなど主要フレームワークがそのまま動作、パフォーマンスもほぼネイティブ
- CloudflareやAWS Lambdaと比較し、互換性・速度・コストで優位性
Wasmer EdgeによるWebAssembly上のPythonフルサポート発表
- AIワークロード の増加により、 WebAssembly上でのPythonサポート 需要が急拡大
- numpy や pandas などの ネイティブモジュール 対応が必須条件
- pyodide はブラウザ向けであり、 サーバーサイド用途には制約 が多い
- Wasmer Edge(Beta) で WebAssemblyとWASIX により、主要Pythonフレームワークの フルサポート を発表
技術的課題と解決策
- 動的リンク(dlopen/dlsym) 対応による WASIX拡張
- libffiサポート 追加で ctypes利用ライブラリ も動作
- ソケット通信・スレッド対応 の強化
- 独自Python Package Index 公開、人気の Pythonネイティブライブラリ を WASIX用にビルド
- Heroku Buildpacks/Nixpacks/Devbox代替 の自動プロジェクト検出・デプロイ機能を開発
パフォーマンス・ベンチマーク
- 従来リリースより大幅な高速化、 py2wasm よりも速い
- pystoneベンチマーク で ネイティブPython に近い速度を実現
- 初回実行時はコンパイルに数分必要、今後の改善予定
- 最適化技術 により 95%ネイティブ性能 を目指す
対応可能なワークロード例
- FastAPI、Django、Flask、Starlette などの APIサーバー
- MySQL自動接続、 WebSockets対応FastAPI、 MCPサーバー
- 画像処理(pillow)、 ffmpeg統合、 streamlitやlangchain
- pypandoc などの多様なPythonアプリ
- 近日中に curl_cffi、polars、gevent/greenlet、Pytorch もサポート予定
他プラットフォームとの比較
- Wasmer Edge は ネイティブモジュール/マルチスレッド/WSGI/ASGI/WebSocket に幅広く対応
- Cloudflare Workers(Pyodideベース) は ネイティブモジュール不可・スレッド不可・WebSocket非対応
- AWS Lambda は ラッパー必須・WebSocket不可・セットアップ複雑
- Wasmer Edge は コード変更不要・コールドスタート高速・コストも安価
Cloudflare Workers(Pyodide)との違い
- Pyodide は ブラウザ用途特化、 サーバーサイドでは制限多数
- uvloop/uvicorn非対応
- スレッド/マルチプロセス不可
- 生HTTPソケット不可
- Pythonバージョン固定
- コールドスタート遅い
- Wasmer Edge は WASIX上で本物のPython が動作、 制約なし・高速起動
AWS Lambdaとの違い
- AWS Lambda は WSGIアダプタ必須、 WebSocket非対応、 セットアップ複雑
- Wasmer Edge は コード変更不要 で 任意のPython HTTPサーバー がそのまま動作
Wasmer Edgeの優位性
- Pyodideよりもネイティブに近いPython、 JS不要
- Cloudflare Workersより高速・高互換性
- AWS Lambdaより高い互換性・低コスト
- 多彩なテンプレート を用意、 すぐにデプロイ可能
はじめ方・テンプレート紹介
- MCPサーバー テンプレートで ChatGPT連携サイト を簡単作成
- https://wasmer.io/templates/mcp-chatgpt-starter?intent=at_vRxJIdtPCbKe
- Github連携・テンプレートからリポジトリ作成・即デプロイ
- ソースコード: https://github.com/wasmer-examples/python-mcp-chatgpt-starter
- Django + Uvicorn テンプレートも用意
- https://wasmer.io/templates/django-starter?intent=at_WK0DIkt3CeKX
- MySQL自動作成・マイグレーション実行
- ソースコード: https://github.com/wasmer-examples/django-wasmer-starter
まとめ・今後の展望
- WebAssembly + Wasmer で Pythonアプリがポータブル・サンドボックス化・高速化
- AIワークロード/API/エッジ用途 に最適な新しいPython実行環境
- ベータ段階 のため、問題があれば フィードバック歓迎
- 公式テンプレート・ドキュメント・コミュニティ も充実
- Python on Wasmer Edge で、 あらゆるPythonアプリがエッジでネイティブ級に動作