প্রকল্প সম্পর্কে

Cloudflare Computer একটি পূর্বরূপ-পর্যায়ের ওপেন-সোর্স প্রজেক্ট (MIT লাইসেন্স) যা সফটওয়্যার এজেন্টদের একটি টেকসই 'কম্পিউটার' দেয়: একটি ভার্চুয়াল ফাইলসিস্টেম যার কর্তৃত্বপূর্ণ অবস্থা Cloudflare Durable Object-এর ভেতরে SQLite-এ থাকে, এবং workspace.runtime-এর মাধ্যমে প্রকাশিত একটি প্লাগেবল এক্সিকিউশন পৃষ্ঠতল। বর্তমানে তিনটি এক্সিকিউশন ব্যাকএন্ড রয়েছে। Container ব্যাকএন্ড SQLite অবস্থাকে একটি স্যান্ডবক্স কন্টেইনারে প্রকৃত FUSE মাউন্ট হিসেবে প্রজেক্ট করে: computerd নামে একটি স্যান্ডবক্স-সাইড ডেমন অবস্থাকে একটি ফাইলসিস্টেম হিসেবে মাউন্ট করে এবং capnweb RPC চ্যানেলের মাধ্যমে পরিবর্তনগুলো সিঙ্ক করে ফিরিয়ে দেয়, যা প্রকৃত বাইনারি ও প্রকৃত নেটওয়ার্ক অ্যাক্সেসসহ একটি পূর্ণ Linux ইউজারল্যান্ড সরবরাহ করে। Isolate shell ব্যাকএন্ড একটি Dynamic Worker-এর ভেতরে just-bash চালায় এবং Workers RPC-এর মাধ্যমে কর্তৃত্বপূর্ণ Workspace-এ পৌঁছায়, তাই দ্বিতীয় কোনো স্টোর বা সিঙ্ক রাউন্ড ট্রিপ নেই। Isolate JavaScript ব্যাকএন্ড একটি নতুন Dynamic Worker-এ একটি ECMAScript module মূল্যায়ন করে, যেখানে গঠনগত ইনপুট ও ফলাফল, টেকসই রিলেটিভ ইমপোর্ট, কনফিগার করা লাইব্রেরি, Workspace-ভিত্তিক node:fs/promises, এবং বিশ্বস্ত ws:git ও ws:artifacts মডিউল রয়েছে। একটি Workspace স্থিতিশীল ID-এর অধীনে একাধিক ব্যাকএন্ড নিবন্ধন করতে পারে। workspace.runtime.exec(source, { backend }) হলো একমাত্র এক্সিকিউশন প্রবেশ পয়েন্ট, এবং নির্বাচিত ব্যাকএন্ডই নির্ধারণ করে source একটি shell command নাকি ES module। ব্যাকএন্ডগুলো প্রথম ব্যবহারে অলসভাবে সংযুক্ত হয়, এবং কোনো ব্যাকএন্ড ছাড়াই 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 Object-গুলো দ্বারা ব্যবহৃত টপ-লেভেল প্যাকেজ) রয়েছে। একটি ব্যক্তিগত Docker image context একটি পূর্বনির্মিত computerd linux-x64 বাইনারি নিয়ে আসে, এবং npm প্যাকেজের পরিবর্তে image-টিই রিলিজ আর্টিফ্যাক্ট হিসেবে কাজ করে। examples ডিরেক্টরিটি পাবলিক পৃষ্ঠতল দেখানোর জন্য চলানো যায় এমন Workers ধারণ করে: write/read/exec HTTP এন্ডপয়েন্টসহ একটি container উদাহরণ; কোনো কন্টেইনার লাগে না এমন worker-shell ও worker-javascript ভ্যারিয়েন্ট; ব্যাকএন্ড জুড়ে none, all ও custom egress নীতি দেখানো একটি egress উদাহরণ; একটি টেকসই workspace, Worker shell, এবং পূর্ণ Linux container দ্বারা সমর্থিত Code Mode code tool প্রকাশকারী একটি MCP উদাহরণ; একটি rlm উদাহরণ যেখানে উৎপন্ন JavaScript Workspace থেকে দীর্ঘ context পড়ে, bounded model workers-কে কল করে, এবং তাদের গঠনগত ফলাফলগুলো কোড দিয়ে হ্রাস করে; একটি think ও think-compare-runtimes উদাহরণ যেখানে @cloudflare/think chat agent workspace-কে তার working directory হিসেবে ব্যবহার করে, যার মধ্যে একই agent task container ও worker runtimes-এর বিপরীতে পাশাপাশি চালানোর একটি web UI রয়েছে; একটি ধাপে ধাপে টিউটোরিয়াল যা একটি markdown recipe card লেখে এবং PDF তৈরি করতে container-এ pandoc চালায়; একটি artifacts উদাহরণ যা workspace-এ একটি Worker project তৈরি করে এবং Cloudflare Artifacts-এ clone-ready repo হিসেবে প্রকাশ করে; এবং একটি assets উদাহরণ যা একটি prompt-কে Workers AI দিয়ে একটি image-এ রূপান্তর করে এবং একটি শেয়ারযোগ্য লিংক ফেরত দেয়। রিপোজিটরিটি docs/19_performance.md-এ ফাইলসিস্টেম বেঞ্চমার্ক প্রকাশ করে, যেখানে প্রজেক্টটি বলে computerd-এর FUSE মাউন্ট metadata-heavy কাজে প্রকৃত disk-কে ছাড়িয়ে যায় এবং বড় sequential I/O-তে পিছিয়ে থাকে, এবং পুনরুৎপাদন নির্দেশনা ও তুলনা অন্তর্ভুক্ত করা হয়েছে। অবদান কেবল issues ও discussions-এর মাধ্যমে bug reports, fix proposals, feature requests, ও design proposals-এ সীমাবদ্ধ; অননুরোধী pull requests গ্রহণ করা হয় না। Example Env types রিপোতে committed না করে wrangler types দিয়ে তৈরি করা হয়।