Rivet 推出 OpenOrange 兼容 Workers 且成本降 4.8 倍

原标题:Run Cloudflare Workers Anywhere
58AI 研判分

Rivet 发布开源项目 OpenOrange,宣称可在任意云或自建机房运行兼容 Cloudflare Workers 的代码,计算成本降低 4.8 倍、存储成本降低 8.7 倍,并支持零停机迁移。产品提供托管、BYOC 与 Apache 2.0 自托管三种部署形态,试图在保留 Workers 开发体验的同时摆脱其运行时限制。

报道正文

本文目录9 个章节

The same developer experience, without the runtime limits, for a fraction of the bill.

Built for serious scale.

Get started How it works

[

Introducing OpenOrange Watch the walkthrough 7](https://www.youtube.com/watch?v=ykeVET4LtA4)

Run it where you want.

Next to your database, in the cloud and region you choose.

Deployment documentation →

  • Rivet Cloud

Fully managed

Runs on A dedicated cluster on AWS or Google Cloud, in the region you choose Operated by Rivet

  • BYOC

Your cloud, our ops

Runs on Your AWS, Google Cloud or Azure account Operated by Rivet, over an outbound connection

  • Self-hosted

Open source, Apache 2.0

Runs on Any cloud, Hetzner or on-prem Operated by You

Same work. A fraction of the bill.

Cloudflare's meters, priced on raw AWS.

cheaper compute 4.8× cheaper storage 8.7× cheaper writes 5.7×

Cloudflare pricing →

OpenOrange

Same work. Less bill.

AWS Graviton · us-east-1AWS on-demand Graviton (ARM) prices in us-east-1, provisioned 40% above use for autoscaling. Reserved pricing, spot and credits are lower. Cloudflare and AWS list prices checked 2026-10-08.

ItemCloudflareYou pay

  • DO computeDurable Object compute, per GB-hour. Cloudflare: $12.50 per million GB-s. OpenOrange: r7g.xlarge (Graviton), 32 GB for $0.2142/h, plus 40% headroom. 4.8× cheaper. /GB-h $0.045 $0.0094 4.8×

  • Workers CPUWorkers compute, per vCPU-hour. Cloudflare: $0.02 per million CPU-ms, plus $0.30 per million requests. OpenOrange: c7g.xlarge (Graviton), 4 vCPU for $0.145/h, plus 40% headroom. No request fee.. 1.4× cheaper. /vCPU-h $0.072 $0.051 1.4×

  • DO SQLiteDurable Object SQLite, per GB-month. Cloudflare: $0.20 per GB-month. OpenOrange: S3 Standard in your account. 8.7× cheaper. /GB-mo $0.20 $0.023 8.7×

  • SQLite writesSQLite rows written, per million rows. Cloudflare: $1.00 per million rows, Durable Objects and D1. OpenOrange: One SQLite write per row, at the measured S3 request cost per write. 5.7× cheaper. Measured on Rivet: 5,000 concurrent agents, each writing a 64-byte SQLite upsert every 10 s, made 1.32 billion writes a month for $232 in S3 requests. Your cost per write depends on your workload. /1M rows $1.00 $0.18 5.7×

  • D1D1, per GB-month. Cloudflare: $0.75 per GB-month. OpenOrange: S3 Standard in your account. 32.6× cheaper. /GB-mo $0.75 $0.023 32.6×

  • KVKV, per GB-month. Cloudflare: $0.50 per GB-month. OpenOrange: S3 Standard in your account. 21.7× cheaper. /GB-mo $0.50 $0.023 21.7×

  • WorkflowsWorkflows, per GB-month. Cloudflare: $0.20 per GB-month. OpenOrange: S3 Standard in your account. 8.7× cheaper. /GB-mo $0.20 $0.023 8.7×

  • KV writesKV writes, per million writes. Cloudflare: $5.00 per million writes, deletes or lists. OpenOrange: One SQLite write per KV write, at the measured S3 request cost per write. 28.4× cheaper. Measured on Rivet: 5,000 concurrent agents, each writing a 64-byte SQLite upsert every 10 s, made 1.32 billion writes a month for $232 in S3 requests. Your cost per write depends on your workload. /1M writes $5.00 $0.18 28.4×

  • Queue msgsQueues messages, per million messages. Cloudflare: $0.40 per million operations, 3 per message. OpenOrange: Two SQLite writes per message, send and ack, at the measured S3 request cost per write. 3.4× cheaper. Measured on Rivet: 5,000 concurrent agents, each writing a 64-byte SQLite upsert every 10 s, made 1.32 billion writes a month for $232 in S3 requests. Your cost per write depends on your workload. /1M messages $1.20 $0.35 3.4×

  • Workflow stepsWorkflows steps, per million steps. Cloudflare: $0.80 per 100,000 steps. OpenOrange: A few SQLite rows per step: log, state and result, at the measured S3 request cost per write. 45.4× cheaper. Measured on Rivet: 5,000 concurrent agents, each writing a 64-byte SQLite upsert every 10 s, made 1.32 billion writes a month for $232 in S3 requests. Your cost per write depends on your workload. /1M steps $8.00 $0.18 45.4×

  • Egress taxTraffic inside your VPC is free. Every call from Cloudflare back to your database or APIs in AWS pays AWS egress, $0.09 per GB.$0.00 Free

  • Cloud creditsAWS, Google and Azure credits and committed spend pay for OpenOrange. Cloudflare is a second bill.Accepted

Keep this for your CFO

128 MB

No runtime limits.

128 MB is all the memory a Cloudflare Worker gets. OpenOrange runs your Workers and Durable Objects on machines you choose, so the limits are your hardware's.

LimitCloudflare Workers PaidOpenOrange
Memory per Worker or Durable Object128 MBUp to your machine's memory Node.js heap: up to about 4 GB by default, configurable
CPU time per request30 s default, 5 min maxNo cap
Cron, queue and alarm handlers15 min wall timeNo cap
Open connections per request6 at onceOS limits
Storage per Durable Object10 GBNo cap
Worker bundle64 MiBNo cap
Node.jsnodejs_compat subsetStock Node.js

Workers Paid plan, from Cloudflare's docs. Free plan limits are stricter.

Don't sacrifice your DX.

Your wrangler.jsoncBindings, environments, build commands and .dev.vars work as they do with Wrangler. stays the source of truth. Same commands, new name.

pied-piper — zsh

$ orange dev

● Ready in 1.4s

Local http://127.0.0.1:8787

$ orange deploy -e staging

✓ Deployed pied-piper to staging

URL https://staging.piedpiper.com

$ orange deploy --dry-run

Dry run. Nothing was built or sent to Rivet Cloud.

staging.piedpiper.com A

Anton

Ask for code. The agent works in its own VM, and everyone in this thread sees it live.

R

Richard

Write fib.py that prints the first 15 Fibonacci numbers, run it, and tell me their sum.

A

Anton Agent 2 tools working

Thinking…

write fib.py

BASH
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377
sum: 986

Richard, I wrote fib.py and ran it. It printed the first 15 Fibonacci numbers, starting from 0.

Their sum is 986.

R Message Anton M

Middle-out

Ask for code. The agent works in its own VM, and everyone in this thread sees it live.

R

Richard

Run middle-out on season-finale.mov and report the Weissman score.

M

Middle-out Agent 2 tools working

Thinking…

read compress.toml

BASH
season-finale.mov  4.2 GB → 806 MB
weissman score     5.2

Richard, middle-out took season-finale.mov from 4.2 GB to 806 MB.

The Weissman score is 5.2.

R Message Middle-out

Get started.

Run this project's Cloudflare Worker on Rivet with OpenOrange. First, ask me where it should run: on my machine, on a Rivet cluster, or on my own Rivet Engine. Then read https://github.com/rivet-dev/open-orange/blob/main/README.md and follow its quickstart. Do not change my app code.

  1. Step 1: Install

Install the orange CLI globally, then run it in your Worker project. Your code and your Wrangler configuration do not change.

$ pnpm add -g open-orange 2. ### Step 2: Run your Worker

Reads your Wrangler configuration. Each Durable Object runs as a Rivet Actor with its own SQLite database.

$ orange dev

● Ready in 0.9s

Local http://127.0.0.1:8787 3. ### Step 3: Deploy

Builds an image of your Worker and rolls it out to your own cloud (AWS, GCP, Azure) or on-prem servers. Or use Rivet Cloud: a fully managed, dedicated cluster on AWS or Google Cloud, in the region you choose.

Deploy guide →Self-host it →

$ orange login

$ orange link --cluster <name>

$ orange deploy

✓ Deployed my-worker

URL https://api.example.com

Migrate your data without downtime.

orange migrate copies every Durable Object and D1*Cloudflare doesn't provide a way to migrate D1 live, so requests to a D1 database are interrupted while its data copies. This takes a few minutes. database from Cloudflare while your app keeps serving. No maintenance window, no lost writes.

Migration guide →

Supported bindings.

Every Cloudflare binding OpenOrange runs, plus the fetch handler and runtime globals. Each is documented with its status, configuration and known differences from Cloudflare.

Bindings documentation →

Not built yet: Vectorize, Images, Pipelines, mTLS certificates. These bindings load, and each call throws an error that names the binding.

Questions.

Wait, wasn't Cloudflare supposed to be cheaper? +

For small, spiky Workers, it often is: the free tier and per-request pricing are hard to beat. The meters add up once Durable Objects stay busy. Duration is billed per GB-second while an object is active, and every SQLite row written costs $1 per million. The same GB-hours on Graviton EC2 cost about a fifth as much, and writes cost a fraction of that.

Is OpenOrange a fork of Cloudflare? +

No. OpenOrange implements the Workers API on Node.js and maps each Cloudflare service onto Rivet. It uses Wrangler to read your configuration, and it reuses some MIT-licensed Cloudflare code, such as the Workflows engine. It does not run workerd.

Why not just run workerd directly? +

workerd is Cloudflare's runtime, not its platform. It runs your fetch handler, but KV, D1, R2, Queues, Workflows and the Cache API are bindings that call services you have to build, and Durable Objects keep their data on one machine with nothing to place, replicate or scale them. It also keeps limits designed around Cloudflare's network rather than your servers: only the nodejs_compat subset of Node.js, no native npm modules, and alarms capped at 15 minutes. OpenOrange runs your Worker on Node.js with real SQLite, and Rivet provides the services, so your code keeps working on infrastructure you control. Compare OpenOrange and workerd →

Do I need to learn Rivet? +

No. Rivet is the control plane underneath. You use the orange CLI and your Wrangler configuration.

What does it cost? +

OpenOrange is Apache 2.0 and free. Self-host Rivet and your cloud bill is the only bill. Rivet Cloud and BYOC pricing is at rivet.dev/pricing.

What happens to the data already in KV, Durable Objects and R2? +

orange migrate moves Durable Objects while your app serves, with no downtime. D1 databases are interrupted for a few minutes while they copy, because Cloudflare doesn't provide a way to migrate D1 live. R2 is S3-compatible, so rclone or aws s3 sync moves buckets.

Does it run at the edge? +

It runs wherever you deploy it, in as many regions as you want. Most backends talk to one database; running next to it is faster than running at the edge. For stateless Worker requests, this works fine today. For Durable Objects, an upcoming Rivet update adds multi-region support, including edge regions.

Who maintains OpenOrange? +

Rivet. OpenOrange is not affiliated with or endorsed by Cloudflare, Inc.

Keep the platform. Lose the walls.

Your Cloudflare project in your datacenter.

Built for serious scale.