TL;DR
OpenWorkers is an open-source runtime, written in Rust, that runs untrusted JavaScript in V8 isolates and aims to reproduce the Cloudflare Workers developer experience on private infrastructure. It supports KV, PostgreSQL, S3/R2-compatible storage, common web APIs and ships with tooling for self-hosted deployment using Docker Compose and a single PostgreSQL instance.
What happened
A new open-source project called OpenWorkers provides a self-hosted runtime for executing untrusted JavaScript inside V8 isolates, implemented in Rust. The runtime is designed to be compatible with Cloudflare Workers syntax and exposes developer-facing bindings such as KV storage (get/put/delete/list), PostgreSQL access, S3/R2-compatible object storage, service bindings, and environment variables/secrets. It also implements several Web APIs (fetch, Request/Response, ReadableStream, crypto.subtle, TextEncoder/Decoder, Blob) and runtime primitives like setTimeout and AbortController. The architecture shown on the project site includes an nginx proxy, dashboard, API, logging, runner processes, NATS, Postgres, and a scheduler. Each V8 isolate is limited to 100ms CPU and 128MB memory. The repo provides a Docker Compose-based self-hosting workflow requiring a single PostgreSQL instance and instructions to run migrations and start services. The project traces its evolution over seven years and was recently rewritten on rusty_v8.
Why it matters
- Brings an edge-like serverless execution model to infrastructure you control, reducing dependence on cloud vendor runtimes.
- Compatibility with Cloudflare Workers syntax aims to ease migration and reuse of existing worker code.
- Sandboxing with per-worker CPU and memory caps provides a bounded execution environment for untrusted code.
- Self-hosting model promises predictable costs by avoiding per-request pricing and keeping data on-premises.
Key facts
- OpenWorkers is open-source and implemented in Rust atop rusty_v8.
- Designed to run untrusted JavaScript inside V8 isolates with sandboxing limits (100ms CPU, 128MB memory per worker).
- Exposes bindings: KV storage (get, put, delete, list), PostgreSQL database access, S3/R2-compatible storage, service bindings, and environment variables/secrets.
- Supports Web APIs including fetch, Request/Response, ReadableStream, crypto.subtle, TextEncoder/Decoder, Blob, setTimeout and AbortController.
- Includes built-in cron scheduling supporting 5- or 6-field cron syntax.
- Architecture diagram shows components such as nginx proxy, dashboard, API, logs, runner processes, NATS, Postgres and a scheduler.
- Self-hosting workflow uses a single PostgreSQL database and a Docker Compose configuration; repository and docs are available on the project site.
- The project has been developed over about seven years and was migrated from vm2 and deno-core approaches to rusty_v8.
What to watch next
- Execution recording and replay for deterministic debugging is listed as the project's next planned feature.
- not confirmed in the source: broader community adoption, production-readiness benchmarks, and long-term maintenance commitments.
Quick glossary
- V8 Isolate: A separate instance of the V8 JavaScript engine that provides an isolated execution context for running JS code securely.
- Rust: A systems programming language focused on safety and performance, often used to build high-performance runtime components.
- Docker Compose: A tool for defining and running multi-container Docker applications using a YAML configuration file.
- KV storage: A key-value data store that supports basic operations like get, put, delete and list for small, fast-access data.
- Cron syntax: A string format used to schedule recurring tasks; 5- or 6-field variants specify minute, hour, day, month, weekday, and optionally year or seconds.
Reader FAQ
Is OpenWorkers compatible with Cloudflare Workers?
Yes. The project states compatibility with Cloudflare Workers syntax to ease portability.
How do I deploy OpenWorkers on my infrastructure?
The site describes a Docker Compose-based deployment that requires a single PostgreSQL instance and running migrations before starting services.
Does user data leave my infrastructure when using OpenWorkers?
According to the project site, data never leaves your infrastructure.
Is OpenWorkers production ready?
not confirmed in the source
Introducing OpenWorkers Self-hosted Cloudflare Workers in Rust OpenWorkers is an open-source runtime for executing untrusted JavaScript in V8 isolates. It brings the power of edge computing to your own infrastructure….
Sources
- OpenWorkers: Self-Hosted Cloudflare Workers in Rust
- Cloudflare Workers — Rust language support
- Introducing workerd: the Open Source Workers runtime
- cloudflare/workerd: The JavaScript / Wasm runtime that …
Related posts
- Rust–: Modified Rust compiler that disables the borrow checker
- flow5 Goes Open Source, Links Gmsh SDK and Refactors Core into Library
- flow5 Goes Open Source; v7.54 Adds Gmsh Integration and Refactor