当前位置: 首页 > news >正文

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`。

http://www.jsqmd.com/news/1340588/

相关文章:

  • 二胎家庭专属测评!4 家成都月子中心多胎、大宝陪护配套横向对比 - 品牌测评网
  • 2026具身智能采集供应商实力榜:机器人数据采集厂商全景对比 - 增长观测局
  • Lyciumaker:基于Vue.js的在线三国杀卡牌创作平台
  • 成本核算应该看什么?价格、数量、结构和效率一次拆解
  • 如何免费解锁Grammarly高级版完整指南
  • 3步掌握Angry IP Scanner:网络设备发现与端口扫描实战指南
  • SMT制程防潮细节把控:阻断车间环境带来的隐性吸湿
  • 奇摩有话说:WorkBuddy上下文策略与长文档处理 - 奇摩-workbuddy
  • URP光照贴图与GPU Instancing优化实战
  • 从零组装望远镜:光学DIY实践与核心原理详解
  • 盲盒消费背后的概率设计与理性策略:从“欧气”到科学“吃谷”
  • 基于CDP与本地大模型的智能邮箱自动化助手构建实战
  • 3分钟搞定FanControl:让Windows风扇控制变得简单高效
  • 《都市天际线2》西堡模组:社区如何通过渲染优化重塑游戏视觉体验
  • AI写作不是替代你,而是淘汰不会用它的人:2024职场生存关键技能清单
  • 马上要面试了,到底哪个AI软件能做模拟面试?我实测了5款,说点大实话
  • AS500 激光对中仪四合一,振动频谱精准排查设备震动根源
  • 嵌入式开发必备:串口文件传输原理、YMODEM协议实现与实战调试
  • [具身智能-793]:MCU 控制电机的运动的手段和方法?MCU 检测电机编码器反馈的手段与方法。
  • 重庆三维字、精工字怎么选?别只看效果图,先看工艺、交期和质保承诺 - 中国华商产业观察网
  • 专科生必学10款AI工具:提升效率与就业竞争力
  • Kimi K3大模型本地部署指南:从架构解析到工程实践
  • LoopX:长时运行 AI 智能体工作本地控制平面,带来多方面功能与应用可能
  • 2026新一代一边录音一边转文字的appAI赋能让记录省事整理更清晰
  • 迪迈AGI Mocap实战:从视频到Blender FBX动画的完整动捕流程
  • 从物理直觉到数学模型:二维浅水方程推导与数值求解实践
  • AI Agent与企业系统(ERP/MES/SAP)集成的技术方案:2026年生产级架构解析与主流厂商盘点
  • 2026国产真菌毒素快速检测仪选购指南(粮食|油|谷物饲料|酸枣仁项目场景) - 云唐专业仪器测评
  • 公众号自动化发布工具实战:从环境搭建到生产部署全流程解析
  • 文科生用Python+Pygame开发历史策略游戏:从零到打包的实战指南