इस प्रोजेक्ट के बारे में
Cloudflare Computer एक पूर्वावलोकन-चरण वाली ओपन-सोर्स परियोजना (MIT लाइसेंस) है जो सॉफ्टवेयर एजेंटों को एक स्थायी 'कंप्यूटर' प्रदान करती है: एक वर्चुअल फाइलसिस्टम जिसकी प्रामाणिक स्थिति Cloudflare Durable Object के अंदर SQLite में रहती है, साथ ही workspace.runtime के माध्यम से उजागर एक एकल प्लग करने योग्य निष्पादन सतह।
आज तीन निष्पादन बैकएंड शिप होते हैं। कंटेनर बैकएंड SQLite स्थिति को एक सैंडबॉक्स कंटेनर में वास्तविक FUSE माउंट के रूप में प्रोजेक्ट करता है: computerd नामक एक सैंडबॉक्स-पक्ष डेमॉन स्थिति को फाइलसिस्टम के रूप में माउंट करता है और capnweb RPC चैनल पर परिवर्तनों को वापस सिंक करता है, जो वास्तविक बाइनरी और वास्तविक नेटवर्क एक्सेस के साथ पूर्ण Linux यूज़रलैंड प्रदान करता है। Isolate शेल बैकएंड Dynamic Worker के अंदर केवल-bash चलाता है और Workers RPC पर प्रामाणिक Workspace तक पहुंचता है, इसलिए कोई दूसरा स्टोर या सिंक राउंड ट्रिप नहीं होता। Isolate JavaScript बैकएंड एक नए Dynamic Worker में ECMAScript मॉड्यूल का मूल्यांकन करता है, जिसमें संरचित इनपुट और परिणाम, स्थायी सापेक्ष इम्पोर्ट, कॉन्फ़िगर की गई लाइब्रेरी, Workspace-समर्थित node:fs/promises, और विश्वसनीय ws:git और ws:artifacts मॉड्यूल शामिल हैं।
एक Workspace स्थिर ID के तहत कई बैकएंड पंजीकृत कर सकता है। workspace.runtime.exec(source, { backend }) एकमात्र निष्पादन प्रवेश बिंदु है, और चयनित बैकएंड यह निर्धारित करता है कि source एक शेल कमांड है या ES मॉड्यूल। बैकएंड पहले उपयोग पर आलसी रूप से जुड़ते हैं, और एक Workspace बिना किसी बैकएंड के भी बनाया जा सकता है, जो फाइलसिस्टम को स्वयं उजागर करता है।
परियोजना को स्पष्ट रूप से PREVIEW ONLY लेबल किया गया है: API अस्थिर हैं, डिज़ाइन परिवर्तन के अधीन है, और यह उत्पादन उपयोग के लिए उपयुक्त नहीं है। docs/ के अंतर्गत विनिर्देश भविष्य-उन्मुख है और इसे आज के कोड के विवरण के बजाय इरादे के रूप में पढ़ा जाना चाहिए।
रिपॉजिटरी एक छोटा मोनोरेपो है। पैकेजों में @cloudflare/dofs (Durable Object SQLite-समर्थित वर्चुअल फाइलसिस्टम, सिंक प्रोटोकॉल बिल्डिंग ब्लॉक, और Node के लिए @platformatic/vfs प्रदाता), @cloudflare/computer-rpc (capnweb वायर प्रकार और साझा सर्वर/क्लाइंट सहायक), @cloudflare/computerd (FUSE माउंट प्लस HTTP/WebSocket RPC डेमॉन जो सैंडबॉक्स कंटेनर के अंदर चलता है), और @cloudflare/computer (Durable Objects द्वारा उपभोग किया गया शीर्ष-स्तरीय पैकेज) शामिल हैं। एक निजी Docker छवि संदर्भ एक पूर्व-निर्मित computerd linux-x64 बाइनरी भेजता है, जिसमें npm पैकेज के बजाय छवि रिलीज़ आर्टिफैक्ट के रूप में कार्य करती है।
उदाहरण निर्देशिका में सार्वजनिक सतह प्रदर्शित करने वाले चलाने योग्य Workers होते हैं: write/read/exec HTTP एंडपॉइंट के साथ एक कंटेनर उदाहरण; worker-shell और worker-javascript वेरिएंट जिन्हें कंटेनर की आवश्यकता नहीं होती; एक egress उदाहरण जो बैकएंड में none, all, और कस्टम egress नीतियां दिखाता है; एक MCP उदाहरण जो स्थायी workspace, Worker शेल, और पूर्ण Linux कंटेनर द्वारा समर्थित Code Mode कोड टूल उजागर करता है; एक rlm उदाहरण जहां उत्पन्न JavaScript Workspace से लंबा संदर्भ पढ़ता है, बाउंडेड मॉडल Workers को कॉल करता है, और उनके संरचित परिणामों को कोड के साथ कम करता है; think और think-compare-runtimes उदाहरण जहां @cloudflare/think चैट एजेंट workspace को अपनी कार्यशील निर्देशिका के रूप में उपयोग करता है, जिसमें एक वेब UI शामिल है जो कंटेनर और वर्कर रनटाइम के खिलाफ एक ही एजेंट कार्य चलाता है; एक चरण-दर-चरण ट्यूटोरियल जो मार्कडाउन रेसिपी कार्ड लिखता है और PDF उत्पन्न करने के लिए कंटेनर में pandoc चलाता है; एक artifacts उदाहरण जो workspace में Worker प्रोजेक्ट उत्पन्न करता है और इसे क्लोन-तैयार रिपो के रूप में Cloudflare Artifacts पर प्रकाशित करता है; और एक assets उदाहरण जो Workers AI के साथ एक प्रॉम्प्ट को छवि में बदलता है और साझा करने योग्य लिंक लौटाता है।
रिपो docs/19_performance.md में फाइलसिस्टम बेंचमार्क प्रकाशित करता है, जहां परियोजना बताती है कि computerd का FUSE माउंट मेटाडेटा-भारी कार्यों पर वास्तविक डिस्क को हरा देता है और बड़े अनुक्रमिक I/O पर पीछे रह जाता है, जिसमें पुनरुत्पादन निर्देश और तुलना शामिल हैं।
योगदान केवल मुद्दों और चर्चाओं के माध्यम से बग रिपोर्ट, फिक्स प्रस्ताव, फीचर अनुरोध, और डिज़ाइन प्रस्तावों तक सीमित है; अनचाहे पुल अनुरोध स्वीकार नहीं किए जाते। उदाहरण Env प्रकार रिपो में प्रतिबद्ध होने के बजाय wrangler types के साथ उत्पन्न होते हैं।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.