elliothux / open-compute
git clone https://github.com/elliothux/open-compute.git
v0.3.0 · 12d ago
Self-hosted Cloudflare Workers-compatible platform with Workers、KV、D1、R2、DO、Queues、Workflows、Cron、Cache、Images、Vectorize、AI Search、Artifacts、Static Assets、Service Bindings、Dynamic Workers、LogTail、Gateway in one Rust binary.
+10
stars, 24h · #1,376
+~70
stars, 7 days · #1,766
+~300
stars, 30 days · #1,711
1.4k
★ total · +4% this week
62
forks · 19 open issues
Star history (as recorded here)
LanguageRust
LicenseApache-2.0
Created2026-08-23 (2mo ago)
Last push1d ago
Watchers20
OwnerUser
GitHub topics
cloudcloudflarecloudflare-workerscontainerd1durable-objectsedge-computingjavascriptr2runtimerustself-hostedserverlesssqlitetypescriptv8wasmworkerworkerdwrangler
Links
- GitHub: github.com/elliothux/open-compute
- Homepage: https://open-compute.dev
- Releases · Issues · Hacker News mentions
README excerpt
One binary. One daemon. Isolated instances.
A self-hosted, Cloudflare Workers-compatible platform for a single machine.
Website
· Docs
· Compatibility
· Architecture
English · 简体中文
---
## The Workers platform, running on your hardware
You already know how to write Cloudflare Workers. **open-compute runs the compatible Workers programming model** — module workers, familiar bindings, and cf workflows — on a single machine you own.
**One binary. One shared daemon. One object authority per instance.** Local filesystem is the default; S3-compatible storage is optional.
No Kubernetes. No Redis. No service mesh. No distributed control plane to babysit. No vendor lock-in.
[code]
## Why open-compute
**workerd is a runtime, not a platform.** It executes isolated Workers brilliantly — and stops there. No multi-tenant routing, no durable state, no scheduling, no deployment lifecycle, no control API. Everyone who wants Workers on their own infrastructure has to build that layer.
open-compute _is_ that layer — and it ships as **one file**.
- **One binary, everything inside.** Runtime, control plane, scheduler, and every product binding. Copy it to a host, point it at a directory, and you are serving traffic.
- **Fast because it's workerd.** Worker code runs on a pinned, checksum-verified workerd fork. Isolates start in milliseconds — not one process or container per request.
- **Nothing else to run.** SQLite owns platform metadata and Local storage owns object bytes by default. S3-compatible storage is optional; neither mode needs a database or cache sidecar.
- **Pinned and verified.** The runtime and its assets are fixed and verified at build and startup. Production startup stays offline.
- **Yours completely.** You own the code, data, and machines. External services are optional and explicitly configured.
## Proof, not promises
Compatibility here is measured, not asserted. The same fixtures run against open-compute and real Cloudflare wherever the hosted API permits direct comparison.
| | |
| --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **2,256** | stable API members and overloads tracked across the Workers runtime and product bindings |
| **10** | product surfaces compared request-for-request with real Cloudflare: Workers, Cache, KV, D1, R2, Durable Objects, Queues, Vectorize, AI Search, and Observability |
| **90%+** | required line coverage, with real processes, SQLite, and the pinned workerd runtime in acceptance tests |
## Compatibility
Write standard module workers (`export default { fetch }`) with the bindings you already know. See the compatibility guide for exact behavior and single-node differences.
### Runtime & bindings
| Module | Status |
| ----------------------- | ----------------- |
| Workers | █████████▉ 99% ✅ |
| Workers Standard limits | █████████▉ 99% ✅ |
| KV | █████████▉ 99% ✅ |
| R2 | ███████