- OpenWorkers एक open source runtime है जो V8-आधारित वातावरण में JavaScript चलाता है, जिससे edge computing को अपनी infrastructure पर लागू किया जा सकता है
- यह KV storage, PostgreSQL, S3/R2-compatible storage, service bindings, environment variables और secrets को support करता है
- fetch, ReadableStream, crypto.subtle जैसे प्रमुख Web API शामिल हैं, जिससे Cloudflare Workers के साथ उच्च compatibility बनी रहती है
- V8 Isolate sandbox, cron scheduling, और Docker Compose-आधारित deployment के जरिए आसान self-hosting संभव है
- लगभग 7 वर्षों में विकसित हुआ यह प्रोजेक्ट vendor lock-in के बिना JavaScript execution environment बनाने का लक्ष्य रखता है
OpenWorkers परिचय
- OpenWorkers एक Rust में लिखा गया Cloudflare Workers-compatible runtime है, जो V8 Isolate का उपयोग करके JavaScript चलाता है
- edge computing के फायदे अपनी server environment में भी लिए जा सकते हैं
- open source होने के कारण इसे स्वतंत्र रूप से deploy और modify किया जा सकता है
मुख्य विशेषताएँ
- Bindings फीचर के जरिए विभिन्न external resources के साथ integration
- KV storage: get, put, delete, list support
- PostgreSQL database integration
- S3/R2-compatible storage support
- service bindings, environment variables और secret management शामिल
- Web API support
- fetch, Request, Response, ReadableStream जैसे standard API उपलब्ध
- crypto.subtle, TextEncoder/Decoder, Blob, setTimeout, AbortController शामिल
आर्किटेक्चर
- सिस्टम nginx proxy, dashboard, API, log service, runner, PostgreSQL, NATS, scheduler आदि से मिलकर बना है
- हर runner V8 Isolate के भीतर code चलाता है, और CPU 100ms, memory 128MB limits लागू होती हैं
- 5~6-field cron syntax को support करने वाला built-in scheduler शामिल है
- Cloudflare Workers के साथ syntax compatibility बनी रहती है
Self-hosting
- deployment केवल एक PostgreSQL database और Docker Compose file से संभव है
git clone, .env configuration, और docker compose up command से इसे आसानी से चलाया जा सकता है
- migration और token generation प्रक्रिया भी शामिल है
विकास पृष्ठभूमि
- यह प्रोजेक्ट लगभग 7 साल की development process के बाद तैयार हुआ है
- शुरुआत में vm2 के साथ JS sandboxing का प्रयोग किया गया, फिर Cloudflare Workers मॉडल से प्रेरित होकर यह आगे विकसित हुआ
- Deno-core से गुजरते हुए अब इसे rusty_v8 पर फिर से लिखा गया है
- लक्ष्य है Cloudflare Workers-स्तर का developer experience (DX) देना, साथ ही vendor lock-in हटाकर self-hosted server execution environment बनाना
- भविष्य में execution history और replay feature के जरिए deterministic debugging जोड़ने की योजना है
अभी कोई टिप्पणी नहीं है.