搜索你想找的开源项目

输入名称、用途或关键词,也可粘贴 GitHub 仓库链接

分享到微信

当前解读页的微信分享二维码

用微信扫一扫打开,点击右上角「···」分享给朋友或朋友圈。

手机上可截屏后,在微信扫一扫中从相册识别二维码。

rivet-dev/open-orange

运维与部署

让现有 Cloudflare Workers 与 Durable Objects 无需改代码,运行在 AWS、GCP、Azure 或自有服务器上。

342
11
TypeScript
Apache-2.0
创建于 1 天前

项目介绍

OpenOrange 是一个运行时与部署工具,用来把已有的 Cloudflare Workers 项目不改代码地跑在 AWS、Google Cloud、Azure 或自有机器上。它复用同一份 wrangler.jsonc、wrangler.json 或 wrangler.toml 配置,在 Node.js 上实现 Workers API,而不再依赖 workerd;各个 Cloudflare 服务则映射到 Rivet Actor 上。Durable Object 会变成带独立 SQLite 数据库的 Rivet Actor,对象数据由 Rivet 控制面写入 S3 存储(架构说明)。

它针对的是 Cloudflare 在内存、CPU、连接数、存储上的上限,以及 Durable Object 长期运行时不断累积的计量费用。项目给出了一套在原始云机器上运行的成本模型,主张计算和存储更便宜。适合已经在使用 Workers、希望迁出 Cloudflare、保留 Wrangler 工作流,并且可能需要整体自托管的团队。

快速使用

准备一个带 Wrangler 配置文件的 Worker 项目(也可以直接用 hello-durable-object 示例),需要 Node.js 22 或更高版本以及 pnpm;部署时还需要 Docker。先全局安装 CLI:

pnpm add -g open-orange

然后在 Worker 项目目录中启动本地运行时:

orange dev

Worker 会在 http://127.0.0.1:8787 上响应,每个 Durable Object 作为 Rivet Actor 运行,本地 SQLite 数据库放在 .open-orange/ 下(快速开始)。部署时依次登录、关联集群、推送:

orange login
orange link --cluster <cluster-name>
orange deploy

部署成功后会打印应用名和公网 URL。托管方式、BYOC 与自托管见部署指南;orange deploy --dry-run --outdir out 可以只生成 Dockerfile 和构建上下文、不调用 API,便于手动构建镜像。

使用约束

绑定支持程度不一。KV、D1、Rate Limiting、Queues、Cron Triggers、Hyperdrive 属于可直接替换;Durable Objects、Cache、Workflows、Tail Workers、Worker Loader 属于部分支持,存在已知差异;R2、Workers AI、Send Email、Browser Rendering、Sandbox 属于可插拔,需要自行配置提供方。Analytics Engine 会丢弃数据点,Vectorize、Images、Media、Stream、Pipelines、AI Search、mTLS 证书、VPC 和旧版 blob 不支持,调用会抛错(绑定支持)。上线前应按实际用到的服务查兼容性结果。

数据迁移也不是统一体验:orange migrate 可以在线迁移 Durable Object,D1 数据库复制期间会中断几分钟,R2 存储桶需要用 rclone 或 aws s3 sync 这类 S3 兼容工具搬运(迁移指南)。运行需要 Node.js 22 和 pnpm,部署需要 Docker;自托管则要按平台分别部署 Rivet 控制面和 worker 节点(自托管)。项目采用 Apache-2.0 许可,与 Cloudflare 官方无关。

HotRepo 点评

OpenOrange 于 2026-11-12 出现在 HotRepo 新项目榜的 TypeScript 分类中,在约 17.5 小时的增长窗口内记录到 107 个 Star 和 3 个 Fork。对一个以后端运行和迁移路径为核心、而非以演示界面取胜的项目来说,这是较快的首日信号,但单次快照不足以说明趋势能否延续。

更值得关注的是覆盖面:它替换的不只是运行时,还有周边服务,而项目自己的绑定表就承认多处仅部分支持或不支持。真正决定「无需改代码」能否成立的是这张表,以及 D1、R2 的迁移方案,而不是发布当天的星数。

本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。

相关推荐

  1. rivet-dev/rivet一个开源的有状态工作负载编排器,为 AI agent、实时应用和长时工作流提供轻量、持久的进程。Rust6,510
  2. maillab/cloud-mail用一个域名在 Cloudflare 上搭建多用户邮箱服务,无需自建传统邮件服务器。JavaScript15,174
  3. littledivy/tailnet-do把 Cloudflare Durable Object 变成 Tailscale 尾网设备,拥有独立 100.x 地址,可提供 HTTP/TCP 服务和出站访问。JavaScript103
  4. nanami-0713/relay-kit在 Cloudflare Workers 上一键部署盲中继,让手机通过端到端加密隧道访问桌面本地服务。TypeScript104
  5. rociiu/talorys把聊天、记忆、任务、笔记和定时提醒装进你自己的 Cloudflare 账号,单用户使用,无需自建服务器。TypeScript1,383