À propos du projet

Cloudflare Computer est un projet open-source en phase d'aperçu (licence MIT) qui fournit aux agents logiciels un « ordinateur » durable : un système de fichiers virtuel dont l'état faisant autorité réside dans SQLite à l'intérieur d'un Durable Object Cloudflare, plus une surface d'exécution enfichable unique exposée via workspace.runtime. Trois backends d'exécution sont disponibles aujourd'hui. Le backend Conteneur projette l'état SQLite dans un conteneur sandbox comme un véritable montage FUSE : un démon côté sandbox appelé computerd monte l'état comme système de fichiers et synchronise les modifications via un canal RPC capnweb, fournissant un environnement Linux complet avec de vrais binaires et un accès réseau réel. Le backend Isolate shell exécute juste-bash dans un Dynamic Worker et atteint le Workspace faisant autorité via Workers RPC, sans deuxième stockage ni aller-retour de synchronisation. Le backend Isolate JavaScript évalue un module ECMAScript dans un Dynamic Worker frais avec des entrées et résultats structurés, des imports relatifs durables, des bibliothèques configurées, node:fs/promises adossé au Workspace, et des modules fiables ws:git et ws:artifacts. Un Workspace peut enregistrer plusieurs backends sous des identifiants stables. workspace.runtime.exec(source, { backend }) est le point d'entrée d'exécution unique, et le backend sélectionné détermine si la source est une commande shell ou un module ES. Les backends se connectent paresseusement à la première utilisation, et un Workspace peut aussi être construit sans aucun backend, exposant le système de fichiers seul. Le projet est explicitement étiqueté APERÇU UNIQUEMENT : les API sont instables, la conception peut changer, et il ne convient pas à une utilisation en production. La spécification sous docs/ est prospective et doit être lue comme une intention plutôt qu'une description du code actuel. Le dépôt est un petit monorepo. Les packages incluent @cloudflare/dofs (système de fichiers virtuel SQLite Durable Object, blocs de protocole de synchronisation, et un fournisseur @platformatic/vfs pour Node), @cloudflare/computer-rpc (types filaires capnweb et helpers serveur/client partagés), @cloudflare/computerd (le montage FUSE plus le démon RPC HTTP/WebSocket qui s'exécute dans le conteneur sandbox), et @cloudflare/computer (le package de niveau supérieur consommé par les Durable Objects). Un contexte d'image Docker privée embarque un binaire computerd linux-x64 précompilé, l'image servant d'artefact de publication plutôt qu'un package npm. Le répertoire examples contient des Workers exécutables démontrant la surface publique : un exemple de conteneur avec des points de terminaison HTTP write/read/exec ; des variantes worker-shell et worker-javascript sans conteneur ; un exemple d'egress montrant des politiques d'egress aucune, toutes et personnalisées à travers les backends ; un exemple MCP exposant un outil de code Code Mode adossé à un workspace durable, un shell Worker et un conteneur Linux complet ; un exemple rlm où du JavaScript généré lit un long contexte depuis un Workspace, appelle des modèles de workers bornés et réduit leurs résultats structurés avec du code ; des exemples think et think-compare-runtimes où un agent de chat @cloudflare/think utilise le workspace comme répertoire de travail, y compris une interface web qui exécute la même tâche d'agent contre des runtimes conteneur et worker côte à côte ; un tutoriel étape par étape qui écrit une fiche de recette markdown et exécute pandoc dans le conteneur pour produire un PDF ; un exemple artifacts qui génère un projet Worker dans un workspace et le publie sur Cloudflare Artifacts comme dépôt prêt à cloner ; et un exemple assets qui transforme une invite en image avec Workers AI et renvoie un lien partageable. Le dépôt publie des benchmarks de système de fichiers dans docs/19_performance.md, où le projet déclare que le montage FUSE de computerd bat le disque réel sur les travaux lourds en métadonnées et le suit sur les E/S séquentielles importantes, avec des instructions de reproduction et des comparaisons incluses. La contribution est limitée aux rapports de bugs, propositions de correctifs, demandes de fonctionnalités et propositions de conception via les issues et discussions ; les pull requests non sollicitées ne sont pas acceptées. Les types Env d'exemple sont générés avec wrangler types plutôt que commités dans le dépôt.