Run Workers and Durable Objects on infrastructure you control.
Peren is an open-source, self-hosted runtime for stateful Worker applications. It runs JavaScript and WebAssembly in V8 isolates, gives each stateful cell SQLite-backed storage, and provides the fleet operations needed to deploy and recover services across a VPS, bare-metal servers or Kubernetes.
Peren is built for platform engineers, infrastructure engineers, backend engineers and technical teams that want the Workers programming model while retaining control of their infrastructure, providers, release process and data boundaries.
- JavaScript, CommonJS and WebAssembly module loading in V8 isolates.
- Tested web platform APIs and selected Worker-safe Node compatibility modules.
- Explicit runtime limits for CPU time, wall-clock time, heap use, request size, subrequests and isolate admission.
- Named services, entrypoints, service bindings and request routing.
- Durable Object-style cells with one current owner and SQLite-backed state.
- Ownership epochs, signed leases and fencing that refuse writes from stale owners.
- Snapshot and write-ahead-log records used to recover state after node loss.
- Alarms, workflows, scheduled work and point-in-time recovery capabilities with documented limits.
- KV, D1-compatible SQL, R2-style object storage and queues.
- Service bindings, dispatch namespaces, secrets and controlled outbound network access.
- Cache, AI, vector indexes, Hyperdrive metadata, analytics, images, module loading and containers.
- Native, local and provider-backed implementations selected through fleet configuration.
Provider choice changes durability, consistency, topology and failure behavior. Peren documents those boundaries instead of treating every provider as equivalent.
- Node join, health, drain, removal and recovery workflows.
- Verified service deployment records, gradual rollout controls and rollback.
- Backup, restore, diagnostics, storage qualification and upgrade planning.
- Tenant lifecycle, scoped credentials, secret rotation and authenticated peer identity.
- Prometheus metrics, logs, tracing and export integrations for operating a fleet.
Peren does not claim complete Cloudflare Workers compatibility. Supported runtime APIs, bindings and provider behavior are recorded explicitly. Behavior that cannot be represented safely is refused instead of being silently approximated.
Before migrating an existing application, review:
- runtime and provider compatibility;
- web platform compatibility;
- Cloudflare migration guidance;
- degraded operation.
The installer supports Linux and macOS on x86-64 and ARM64:
curl -fsSL https://peren.dev/install | sh
peren --versionThe installer places the peren binary in /usr/local/bin by default. Review the installer source before running it, or download a release artifact and verify it using the release verification guide.
For containers, system packages and Kubernetes, follow the installation and deployment documentation.
Peren has separate paths for application development and fleet operation:
- Start Peren locally
- Build a stateful Worker
- Understand the architecture
- Configure a fleet
- Explore bindings
- Understand security boundaries
- Operate degraded systems
- CLI reference
The documentation describes released product behavior. Repository build commands and maintainer checks live in DEVELOPMENT.md.
Read CONTRIBUTING.md before opening an issue or pull request. Source setup, architecture rules and repository verification commands are documented in DEVELOPMENT.md.
Peren is licensed under the Apache License 2.0.
