Repolode
denoland

denoland/celld

一个自托管守护进程,可在自己的机器上运行 Cloudflare Workers 应用和 Durable Objects,状态保存在对象存储桶中。

可替代:Cloudflare Workers

Star
6,057
Fork
408
未关闭 Issue
71
最近提交
21小时前

这是什么?

celld 可以在自己的机器上运行 Cloudflare Workers 应用,直接使用现有的 wrangler.json 部署,支持 Workers、Durable Objects、KV、Queues、D1、R2、Workflows、Cron Triggers 和静态资源。每个 Durable Object 对应一个带名称的 cell,拥有独立的 SQLite 数据库,长期状态保存在 S3 兼容存储、Google Cloud Storage 或 Azure Blob Storage 存储桶中。

每个节点是一个嵌入 V8 的 celld 进程,用来执行 Wrangler 打包产物。共享同一存储桶的节点组成一个集群。每个 cell 的所有权通过条件写入存储桶获得,因此同一时刻只有一个节点拥有该 cell,无需额外的共识或控制平面服务。节点数达到两个及以上时,已提交的 SQLite 写入会先复制到其他节点,写入延迟低于单节点等待存储桶的方式。

项目还提供命令行工具,用于运维已部署的集群,包括健康诊断、cell 列表、D1 迁移、KV 批量导入、R2 对象读写以及 Queue 控制。无需云存储桶即可通过 celld dev 进行本地开发。

核心功能

  • 01在自有节点上运行 Workers、Durable Objects、KV、Queues、D1、R2、Workflows 和 Cron Triggers。
  • 02可直接使用现有 wrangler.json 部署,Worker 代码由 esbuild 打包。
  • 03每个 Durable Object 拥有独立的 SQLite 数据库,所有权通过存储桶条件写入获取。
  • 04长期状态可存放在 S3 兼容存储、Google Cloud Storage 或 Azure Blob Storage 中。
  • 05多节点集群中将写入复制到其他节点,以降低写入延迟。
  • 06提供无需云存储桶的本地开发模式 celld dev。

适用场景

  • 在自有基础设施上运行 Cloudflare Workers 风格的后端服务。
  • 托管有状态的 Durable Object 应用,并将数据保存在自有对象存储中。
  • 将现有 Wrangler 项目从 Cloudflare 托管平台迁移出来。
  • 在部署前本地测试 Workers 与 Durable Objects。

快速上手

  1. 1

    运行 README 中的官方安装脚本,安装 celld 二进制文件

  2. 2

    安装 esbuild 并将其加入 PATH,因为 Worker 项目需要它

  3. 3

    在本地运行应用,无需云存储桶

    celld dev

使用前须知

  • Worker 项目还需要将 esbuild 加入 PATH。
  • 单节点每次写入都要等待存储桶,速度明显变慢;如果关注延迟,建议运行两个或更多节点。
  • 需要 Cloudflare 网络、GPU 或浏览器集群的产品不在支持范围内。
  • 容器功能标注为实验性。

收录于专题

标签

常见问题

celld 是什么?
一个自托管守护进程,可在自己的机器上运行 Cloudflare Workers 应用和 Durable Objects,状态保存在对象存储桶中。 celld 可以在自己的机器上运行 Cloudflare Workers 应用,直接使用现有的 wrangler.json 部署,支持 Workers、Durable Objects、KV、Queues、D1、R2、Workflows、Cron Triggers 和静态资源。每个 Durable Object 对应一个带名称的 cell,拥有独立的 SQLite 数据库,长期状态保存在 S3 兼容存储、Google Cloud Storage 或 Azure Blob Storage 存储桶中。
celld 可以免费使用吗?用的什么许可证?
celld 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
celld 还在维护吗?
活跃维护中。celld 最近一次提交是在 2026年10月21日。
celld 适合用来做什么?
在自有基础设施上运行 Cloudflare Workers 风格的后端服务。 托管有状态的 Durable Object 应用,并将数据保存在自有对象存储中。 将现有 Wrangler 项目从 Cloudflare 托管平台迁移出来。 在部署前本地测试 Workers 与 Durable Objects。
celld 怎么安装和运行?
运行 README 中的官方安装脚本,安装 celld 二进制文件 安装 esbuild 并将其加入 PATH,因为 Worker 项目需要它 在本地运行应用,无需云存储桶: celld dev
在哪里获取 celld?
源代码和安装说明在 GitHub 上:https://github.com/denoland/celld

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目