サイモン・ウィリソン(Simon Willison)は2026年6月6日(現地時間)、Pythonコードをサンドボックス内で実行するための新たなアプローチとして、アルファパッケージ「マイクロパイソン・ワズム(micropython-wasm)」をリリースした。このパッケージは、データセット・エージェント(Datasette Agent)向けのコード実行サンドボックスプラグイン「データセット・エージェント・マイクロパイソン(datasette-agent-micropython)」にも既に利用されている。同氏は、長年求め続けてきた特性をすべて備えている可能性があると期待を示している。
サイモン・ウィリソン氏は、データセット(Datasette)、LLM、SQLiteユーティルズ(sqlite-utils)といった主要なオープンソースプロジェクトがすべてプラグインをサポートしていることに言及し、プラグインをソフトウェア拡張のメカニズムとして重視している。しかし、これらのプラグインシステムはPythonとプラッギー(Pluggy)を使用しており、プラグインコードはアプリケーション内でフルアクセス権限で実行されるため、バグのあるプラグインや悪意のあるプラグインがシステムを破壊したり、プライベートデータを漏洩させたりするリスクがあるという。同氏は、承認されていないファイルの読み取り、ネットワークへの接続、またはアプリケーションやユーザーのコンピューターにリスクや害を与えるような操作ができない環境で、プラグインスタイルのコードを実行したいと考えている。
サンドボックスに求められる要件としては、パイパイ(PyPI)からのクリーンなインストール、メモリおよびCPU制限、厳格なファイルアクセス制御、ネットワークアクセス制御、ホスト機能との連携、そして堅牢性、サポート、明確なドキュメントが挙げられている。
この要件を満たすものとして、ウェブアセンブリ(WebAssembly、通称WASM)が有望視されている。Webブラウザでの長年の実績と、wasmtime Pythonライブラリの活発なメンテナンスがその理由である。動的な言語であるPythonをWASMで実行するには、完全なPythonインタープリターをWASMにコンパイルし、コードの供給やホスト機能の接続、結果へのアクセスを容易にする必要がある。パイオダイド(Pyodide)はブラウザでのPython実行に優れているものの、サーバーサイドPythonでの使用はサポートされていないため、マイクロパイソン(MicroPython)が検討された。MicroPythonは、constrained environments(制約のある環境)向けに最適化されたPython 3の実装である。
初期バージョンの構築には、GPT-5.5 ProやCodex Desktopが活用され、Yamamoto Takahashi氏によるMicroPythonへのワシ(WASI)サポートに関するプルリクエストも参照された。最大の課題はインタープリターの状態を永続させることであったが、スレッドとキュー、そして__session_next__()というホスト関数を通じて新しいコードを受け取り、eval()で実行する仕組みを導入することで解決された。また、MicroPython内で実行されるコードが、Pythonライブラリによって選択的に公開されたホスト関数を呼び出すサポートも実現されている。
参考: Simon Willison’s Weblog (アーカイブ) — 2026年6月6日 12:53 (JST)