- OpenWorkers ist eine Open-Source-Runtime, die JavaScript auf Basis von V8 ausführt und Edge Computing auf eigener Infrastruktur ermöglicht
- Unterstützt KV-Speicher, PostgreSQL, S3/R2-kompatiblen Storage, Service Bindings sowie Umgebungsvariablen und Secrets
- Bietet eine hohe Kompatibilität zu Cloudflare Workers, einschließlich wichtiger Web APIs wie fetch, ReadableStream und crypto.subtle
- Einfaches Self-Hosting mit V8-Isolate-Sandbox, Cron-Scheduling und Deployment auf Basis von Docker Compose
- Ein über rund 7 Jahre gewachsenes Projekt mit dem Ziel einer vendorunabhängigen JavaScript-Laufzeitumgebung
Überblick über OpenWorkers
- OpenWorkers ist eine in Rust geschriebene Cloudflare-Workers-kompatible Runtime, die JavaScript mit V8 Isolates ausführt
- Die Vorteile von Edge Computing lassen sich damit auch in einer eigenen Serverumgebung nutzen
- Als Open Source veröffentlicht und frei verteil- und anpassbar
Hauptfunktionen
- Über Bindings lassen sich verschiedene externe Ressourcen anbinden
- KV-Storage: unterstützt get, put, delete, list
- Anbindung an PostgreSQL-Datenbanken
- Unterstützung für S3/R2-kompatiblen Storage
- Einschließlich Service Bindings sowie Verwaltung von Umgebungsvariablen und Secrets
- Web-API-Unterstützung
- Stellt Standard-APIs wie fetch, Request, Response und ReadableStream bereit
- Einschließlich crypto.subtle, TextEncoder/Decoder, Blob, setTimeout und AbortController
Architektur
- Das System besteht aus nginx-Proxy, Dashboard, API, Logging-Service, Runner, PostgreSQL, NATS und Scheduler
- Jeder Runner führt Code innerhalb eines V8 Isolates aus; es gelten Limits von 100 ms CPU und 128 MB Speicher
- Enthält einen integrierten Scheduler mit Unterstützung für Cron-Syntax mit 5 oder 6 Feldern
- Bewahrt Syntaxkompatibilität zu Cloudflare Workers
Self-Hosting
- Das Deployment ist bereits mit einer einzelnen PostgreSQL-Datenbank und einer Docker-Compose-Datei möglich
- Lässt sich einfach mit den Befehlen
git clone, .env-Konfiguration und docker compose up starten
- Einschließlich Verfahren für Migrationen und Token-Erstellung
Entwicklungshintergrund
- Ein Projekt, das in etwa 7 Jahren Entwicklungsarbeit entstanden ist
- Anfangs wurde mit vm2 für JS-Sandboxing experimentiert, später inspiriert vom Modell von Cloudflare Workers weiterentwickelt
- Nach Deno-core inzwischen auf Basis von rusty_v8 neu geschrieben
- Ziel ist der Aufbau einer eigenen Server-Laufzeitumgebung ohne Vendor Lock-in, die zugleich eine Developer Experience (DX) auf dem Niveau von Cloudflare Workers bietet
- Künftig ist die Ergänzung von deterministischem Debugging durch Ausführungsaufzeichnung und Replay-Funktion geplant
Noch keine Kommentare.