ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Cloudflare Computer:虚拟文件系统的多后端玩法与性能揭秘!

Cloudflare Computer:虚拟文件系统的多后端玩法与性能揭秘! Cloudflare Computer 介绍Cloudflare Computer 是一个存在于 Durable Object 内的虚拟文件系统。Durable Object 将权威状态存储在 SQLite 中并通过 workspace.runtime 提供一个可插拔的执行界面。目前有三种后端Container将 SQLite 状态以真实的 FUSE 挂载方式投影到沙箱容器中。沙箱端的守护进程computerd将状态挂载为文件系统并通过 capnweb RPC 通道同步更改。支持完整的 Linux 用户空间、真实的二进制文件和真实的网络。Isolate shell在动态 Worker 中运行 just-bash。它通过 Workers RPC 连接到权威的 Workspace因此无需二次存储或同步往返。Isolate JavaScript在全新的动态 Worker 中运行 ECMAScript 模块支持结构化输入/结果、持久的相对导入、配置库、基于 Workspace 的 node:fs/promises 以及受信任的 ws:git 和 ws:artifacts 模块。一个 Workspace 可以在稳定的 ID 下注册多个后端。workspace.runtime.exec(source, { backend }) 是唯一的执行入口所选后端决定了 source 是一个 shell 命令还是一个 ECMAScript 模块。后端在首次使用时才会进行连接。Workspace 也可以在不使用后端的情况下构建仅为调用者提供文件系统。重要提示仅为预览版 此软件包仅作为预览版提供用于收集反馈。API 不稳定设计可能会发生变化。适合进行实验、探索和原型开发目前不适用于生产环境。docs/ 下的规范具有前瞻性应将其视为设计意图而非当前代码的描述。使用方法如果你想基于 Cloudflare Computer 进行开发可安装 cloudflare/computer 并遵循该软件包的 README其中包含安装步骤、入口点映射以及文件系统和运行时界面的示例。若要提供反馈请参阅 CONTRIBUTING.md。经批准的协作者应遵循 COLLABORATORS.md 中的设置、构建和测试说明。示例examples/ 目录包含了可运行的公共界面示例。每个示例都是一个 Worker 工作区并有各自的 README。examples/container在容器内运行 computerd挂载工作区并通过 capnweb 与 Durable Object 进行通信。提供写入/读取/执行的 HTTP 界面。examples/worker-shell与容器示例具有相同的 HTTP 界面但 shell 在通过 env.LOADER 加载的动态 Worker 中运行 just-bash无需容器。examples/worker-javascript类似于 worker-shell但 exec 在动态 Worker 中评估 ECMAScript 模块而非运行 shell 命令。examples/think一个 cloudflare/think 聊天代理将工作区作为其工作目录可通过终端访问。examples/think-compare-runtimes一个 Web UI可同时在容器和 Worker 运行时上运行相同的代理任务。examples/tutorial逐步构建示例包含一个端点和一个代理该代理在主机上编写 Markdown 食谱卡片并在容器中运行 pandoc 生成 PDF。examples/artifacts在工作区中生成一个 Worker 项目并将其作为可克隆的仓库发布到 Cloudflare Artifacts。examples/assets使用 Workers AI 将提示转换为图像将其写入工作区并通过 cloudflare/computer/assets 返回可共享的链接。仓库布局该仓库是一个小型的单体仓库。每个软件包都有自己的 README包含特定于该软件包的状态和使用说明。packages/dofs (cloudflare/dofs)基于 Durable Object SQLite 的虚拟文件系统、同步协议构建块以及适用于 Node 的 platformatic/vfs 提供程序。packages/rpc (cloudflare/computer-rpc)capnweb 线路类型以及 Durable Object 和 computerd 之间共享的服务器/客户端辅助工具。packages/computerd (cloudflare/computerd)computerd 守护进程一个 FUSE 挂载加上在沙箱容器内运行的 HTTP/WebSocket RPC 服务器。packages/computer (cloudflare/computer)Durable Object 使用的顶级 Computer 软件包正在开发中。packages/computer-computerd-linux-x64预构建的 computerd Linux x64 二进制文件的私有 Docker 镜像上下文。该镜像而非 npm 软件包是发布制品。性能computerd 的 FUSE 挂载在处理大量元数据的工作时优于真实磁盘但在大型顺序 I/O 方面表现较差。完整的文件系统基准测试数据、cloudflare/sandbox-sdk npm 安装比较以及复现方法请参阅 docs/19_performance.md。文档docs/设计规范具有前瞻性应视为设计意图。docs/19_performance.md文件系统基准测试。贡献我们通过问题和讨论接受错误报告、修复建议、功能请求和设计提案但不接受未经请求的拉取请求。公共贡献途径请参阅 CONTRIBUTING.md。经批准的协作者应遵循 COLLABORATORS.md 中的设置、格式化、测试、提交消息和拉取请求规范。如果你作为代理在该仓库中工作请从 AGENTS.md 和 .agents/skills/ 下的技能开始。许可证本项目采用 MIT 许可证详情请参阅 LICENSE。
返回列表