Container
computerd が FUSE で /workspace をマウント。Linux バイナリとネットワークを使えます。
Durable Object の SQLite にファイルを保存し、同じ Workspace を 3 種類の実行環境から扱う。
Cloudflare Computer は、Durable Object 内の SQLite を正とする仮想ファイルシステムです。workspace.fs が永続ファイルを操作し、workspace.runtime.exec() が登録済みバックエンドへ処理を振り分けます。ファイルだけを使う構成では、実行バックエンドを登録しなくても構いません。
読み書き、ディレクトリ操作、検索、マウントを Durable Object のストレージ上で処理します。この SQLite 状態が Workspace の正です。
安定した ID でバックエンドを選びます。接続は初回利用時に作られ、コマンド型とモジュール型の違いは Runtime が吸収します。
computerd が FUSE で /workspace をマウント。Linux バイナリとネットワークを使えます。
just-bash を Dynamic Worker で実行。HOST proxy を通じて同じ SQLite を直接扱います。
新しい Dynamic Worker で ES module を評価。構造化入力と node:fs/promises を利用できます。
| バックエンド | 実行するもの | ファイル経路 | 向いている処理 |
|---|---|---|---|
| Container push / pull | Linux shell と実バイナリ | SQLite ↔ capnweb ↔ computerd ↔ FUSE | ネイティブ CLI、パッケージ処理、Linux userland が必要な作業 |
| Isolate shell direct | just-bash コマンド | Workers RPC の HOST proxy から SQLite へ直接 | 軽量なファイル操作、コンテナを使わないシェル処理 |
| Isolate JavaScript direct | ECMAScript module | host bridge から fs / git / artifacts へ接続 | 構造化入出力、相対 import、JavaScript の隔離実行 |
/workspace 配下です。Isolate shell と Isolate JavaScript は host 側の Workspace を直接使うため、第二のストアや同期往復を持ちません。
withWorkspace で Durable Object に Workspace を組み込み、呼び出し側では getWorkspace() からファイル API を使います。Worker では nodejs_compat が必要です。
import { getWorkspace, withWorkspace } from "@cloudflare/computer";
import { DurableObject } from "cloudflare:workers";
export class Agent extends withWorkspace(
class extends DurableObject<Env> {},
) {}
export default {
async fetch(_request, env) {
const id = env.Agent.idFromName("demo");
using ws = await getWorkspace(env.Agent.get(id));
await ws.fs.writeFile("/notes.txt", "durable\n");
return new Response(await ws.fs.readFile("/notes.txt", "utf8"));
},
};
Workspace に backend を登録すると、同じ runtime.exec() から選択できます。最初の backend が既定値になり、{ backend: "stable-id" } で明示的に切り替えられます。
const run = await ws.runtime.exec("cat /workspace/notes.txt", {
backend: "container",
encoding: "utf8",
});
const { stdout, exitCode } = await run.result();
Workspace、fs、runtime、各 backend、git、assets、artifacts、AI SDK tools を公開します。
スキーマ、ファイル操作、同期部品、computerd が利用する VFS provider を担います。
Durable Object と computerd の wire types、server / client、同期 driver を共有します。
FUSE mount、HTTP / WebSocket RPC、shell 実行を提供し、Container 内の状態を Workspace と同期します。
Container、worker-shell、worker-javascript、agent、tutorial、assets の構成例を収録します。
実行が不要なら、永続ファイルシステムだけの Workspace として構築できます。
docs/ は将来仕様であり、現在の main の実装説明とは区別してください。
EROFS になります。このページは 2026-08-03 時点の main(commit 63d3636)を基に整理しています。