Sobre o projeto
Cloudflare Computer é um projeto open-source em estágio de pré-visualização (licença MIT) que fornece a agentes de software um 'computador' durável: um sistema de arquivos virtual cujo estado autoritativo reside em SQLite dentro de um Durable Object da Cloudflare, além de uma superfície de execução plugável exposta por meio de workspace.runtime.
Três backends de execução são fornecidos atualmente. O backend Container projeta o estado SQLite em um contêiner de sandbox como um ponto de montagem FUSE real: um daemon no lado da sandbox chamado computerd monta o estado como um sistema de arquivos e sincroniza alterações de volta por um canal RPC capnweb, fornecendo um userland Linux completo com binários reais e acesso real à rede. O backend Isolate shell executa apenas bash em um Dynamic Worker e alcança o Workspace autoritativo via Workers RPC, sem segundo armazenamento ou ida e volta de sincronização. O backend Isolate JavaScript avalia um módulo ECMAScript em um Dynamic Worker novo com entrada e resultados estruturados, imports relativos duráveis, bibliotecas configuradas, node:fs/promises com suporte a Workspace e módulos ws:git e ws:artifacts confiáveis.
Um Workspace pode registrar vários backends sob IDs estáveis. workspace.runtime.exec(source, { backend }) é o ponto de entrada de execução único, e o backend selecionado determina se a fonte é um comando shell ou um módulo ES. Os backends conectam-se de forma preguiçosa no primeiro uso, e um Workspace também pode ser construído sem nenhum backend, expondo o sistema de arquivos por conta própria.
O projeto é explicitamente rotulado como SOMENTE PRÉ-VISUALIZAÇÃO: as APIs são instáveis, o design está sujeito a mudanças e não é adequado para uso em produção. A especificação em docs/ é prospectiva e deve ser lida como intenção, não como descrição do código atual.
O repositório é um monorepo pequeno. Pacotes incluem @cloudflare/dofs (sistema de arquivos virtual com suporte a SQLite para Durable Objects, blocos de construção de protocolo de sincronização e um provedor @platformatic/vfs para Node), @cloudflare/computer-rpc (tipos de fio capnweb e helpers compartilhados de servidor/cliente), @cloudflare/computerd (o ponto de montagem FUSE mais daemon RPC HTTP/WebSocket que roda dentro do contêiner de sandbox) e @cloudflare/computer (o pacote de nível superior consumido por Durable Objects). Um contexto de imagem Docker privada inclui um binário computerd linux-x64 pré-compilado, com a imagem servindo como artefato de lançamento em vez de um pacote npm.
O diretório examples contém Workers executáveis demonstrando a superfície pública: um exemplo de contêiner com endpoints HTTP de escrita/leitura/execução; variantes worker-shell e worker-javascript que não precisam de contêiner; um exemplo de egress mostrando políticas de egresso nenhuma, todas e personalizadas entre backends; um exemplo MCP expondo uma ferramenta de código Code Mode apoiada por um workspace durável, um shell de Worker e um contêiner Linux completo; um exemplo rlm onde JavaScript gerado lê contexto longo de um Workspace, chama workers de modelo limitados e reduz seus resultados estruturados com código; exemplos think e think-compare-runtimes onde um agente de chat @cloudflare/think usa o workspace como diretório de trabalho, incluindo uma interface web que executa a mesma tarefa de agente contra runtimes de contêiner e worker lado a lado; um tutorial passo a passo que escreve um cartão de receita em markdown e executa pandoc no contêiner para produzir um PDF; um exemplo de artefatos que gera um projeto de Worker em um workspace e o publica no Cloudflare Artifacts como um repositório clonável; e um exemplo de ativos que transforma um prompt em imagem com Workers AI e retorna um link compartilhável.
O repositório publica benchmarks de sistema de arquivos em docs/19_performance.md, onde o projeto afirma que o ponto de montagem FUSE do computerd supera o disco real em trabalho pesado de metadados e fica atrás em E/S sequencial grande, com instruções de reprodução e comparações incluídas.
A contribuição é limitada a relatórios de bugs, propostas de correção, solicitações de recursos e propostas de design via issues e discussões; pull requests não solicitados não são aceitos. Tipos de ambiente de exemplo são gerados com wrangler types em vez de commitados no repositório.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.