Back Original

Show HN: OpenWorkers – Self-hosted Cloudflare workers in Rust

Self-hosted Cloudflare Workers in Rust

OpenWorkers is an open-source runtime for executing JavaScript in V8 isolates. It brings the power of edge computing to your own infrastructure.

What works today

Features

Bindings

  • • KV storage (get, put, delete, list)
  • • PostgreSQL database
  • • S3/R2-compatible storage
  • • Service bindings
  • • Environment variables & secrets

Web APIs

  • • fetch, Request, Response
  • • ReadableStream
  • • crypto.subtle
  • • TextEncoder/Decoder, Blob
  • • setTimeout, AbortController

Architecture

                         ┌─────────────────┐
                         │  nginx (proxy)  │
                         └────────┬────────┘
                                  │
         ┌───────────────┬────────┴──┬───────────────┐
         │               │           │               │
         │               │           │               │
┌────────┸────────┐ ┌────┸────┐ ┌────┸────┐ ┌────────┸────────┐
│   dashboard     │ │  api    │ │ logs *  │ │  runner (x3) *  │
└─────────────────┘ └────┬────┘ └────┰────┘ └────────┰────────┘
                         │           │               │
                         │           │               │
                ┌────────┸────────┐  │      ┌────────┸────────┐
                │   postgate *    │  └──────┥      nats       │
                └─────────────────┘         └────────┰────────┘
                                                     │
                                                     │
                ┌─────────────────┐           ┌──────┴───────┐
         * ─────┥   PostgreSQL    │           │ scheduler *  │
                └─────────────────┘           └──────────────┘
            +-------------+
            | nginx proxy |
            +------+------+
                   |
   +-------+-------+-------+--------+
   |       |       |                |
+--+--+ +--+--+ +--+---+ +----------+-+
| dash| | api | |logs *| | runner * x3|
+-----+ +--+--+ +--+---+ +-----+------+
           |       |           |
     +-----+----+  |    +------+-----+
     |postgate *|  +----+    nats    |
     +-----+----+       +------+-----+
           |                   |
     +-----+------+     +------+-----+
   *-| PostgreSQL |     | scheduler *|
     +------------+     +------------+

Self-hosting

Deployment is designed to be simple. A single PostgreSQL database and a single Docker Compose file is all you need.

Why I built this

This project has been evolving for about 7 years. I started experimenting with vm2 for sandboxing JS, then Cloudflare launched Workers and I got hooked on the model. When Deno came out, I switched to deno-core and ran on that for two years. Recently, with Claude's help, I rewrote everything on top of rusty_v8 directly.

The goal has always been the same: run JavaScript on your own servers, with the same DX as Cloudflare Workers but without vendor lock-in.

Your Data

Never leaves your infrastructure

Predictable Costs

No per-request pricing

No Lock-in

Cloudflare Workers compatible

Next up: Execution recording & replay for deterministic debugging.