Open Source

Projeto da Deno leva Durable Objects autogerenciados ao GitHub Trending

O celld permite executar Workers e Durable Objects em máquinas próprias, usando Rust e armazenamento S3 compatível para distribuir dados sem plano de controle central.

licença livreReprodução · site do celld

Dados rápidos

  • Repositório: denoland/celld
  • Licença: Apache-2.0
  • Linguagem: Rust
  • Popularidade: 2.707 estrelas e 78 forks; 432 estrelas no período
  • Ranking: GitHub Trending, presente na lista diária
  • Consulta: 9 de agosto de 2026

O problema que o celld tenta resolver

Mantido pela organização Deno, o celld é um daemon autogerenciado para executar Cloudflare Workers e Durable Objects em máquinas próprias. O projeto ganhou espaço no GitHub Trending diário e chegou à versão v0.1.0 em 5 de agosto de 2026, após ter sido criado em 25 de abril de 2025.

Durable Objects são unidades de execução associadas a um estado persistente. No celld, cada objeto possui seu próprio banco SQLite, é identificado por nome e tem os dados replicados para um bucket compatível com S3. Esse desenho separa as aplicações em várias células pequenas, em vez de concentrar toda a carga em um único banco.

A proposta também busca reduzir o impacto de falhas. Um problema em uma célula não precisa atingir todas as demais, enquanto células inativas podem entrar em hibernação e consumir quase nada. O repositório não informa números de desempenho ou capacidade máxima.

Como a arquitetura funciona

Cada nó do celld incorpora o motor V8 e executa bundles gerados pelo Wrangler. Os nós compartilham um bucket S3 compatível, que armazena implantações, estado das células e registros pequenos de propriedade.

A coordenação usa compare-and-swap do armazenamento de objetos para garantir que apenas um nó seja dono de uma célula por vez. O sistema não utiliza plano de controle, protocolo de associação, detector de falhas ou serviço de consenso. Quando uma célula muda de nó ou é reativada, o novo proprietário restaura o banco SQLite a partir do bucket e retoma a execução.

A instalação oficial pode ser feita pelo script abaixo:

curl -fsSL https://celld.dev/install.sh | sh

Depois, o projeto pode ser implantado no bucket e iniciado em um nó:

celld deploy . \
  --bucket s3://my-cells-bucket

celld \
  --bucket s3://my-cells-bucket \
  --listen 0.0.0.0:8080 \
  --advertise 10.0.0.12:8080

O comando celld deploy usa o esbuild disponível no PATH para projetos Worker e aceita um subconjunto de configurações do Wrangler, incluindo projetos com ativos estáticos ou somente assets.

Onde a proposta pode ser aplicada

  • Aplicações com objetos independentes: cada Durable Object pode manter seu próprio SQLite, reduzindo a disputa por um banco compartilhado.
  • Serviços distribuídos em máquinas próprias: equipes podem executar vários nós apontando para o mesmo bucket S3 compatível.
  • Sistemas com estado persistente e retomada: uma célula pode ser restaurada em outro nó depois de uma movimentação ou reativação.
  • Projetos Worker com conteúdo estático: o fluxo de implantação aceita assets coimplantados ou projetos somente de assets.
  • Ambientes com carga variável: células inativas hibernam, enquanto mecanismos opcionais de pressão liberam células ociosas quando os limites configurados são atingidos.

O comando celld diagnose lista os leases dos nós e testa diretamente os peers ativos. A ferramenta também informa amostras de células residentes, WebSockets, memória, CPU, descritores de arquivo e pressão.

O que diferencia o projeto

A característica central é substituir uma infraestrutura de coordenação dedicada pelo próprio armazenamento de objetos. O bucket funciona como fonte durável de verdade, enquanto os nós são substituíveis e descobrem proprietários e peers por leases.

A divisão por célula também difere de uma arquitetura baseada em banco único. No celld, o particionamento acontece pela própria unidade de execução: cada objeto tem seu banco SQLite. O projeto não apresenta, no material consultado, comparação quantitativa com outras plataformas de Workers, bancos distribuídos ou implementações de Durable Objects.

Maturidade, segurança e cuidados

A versão mais recente informada é a v0.1.0, lançada em 5 de agosto de 2026. O README afirma que o runtime e a superfície de compatibilidade ainda estão evoluindo, e que os padrões seguros do mecanismo de descarte por pressão ainda estão sendo medidos.

O tráfego HTTP entre peers não termina TLS. Por isso, os endereços anunciados devem ficar em uma rede privada confiável ou em uma rede criptografada, como WireGuard ou Tailscale; a publicação direta da porta não é recomendada pelo projeto. As requisições usam versão de protocolo, HMAC, validade temporal e proteção contra repetição, mas o acesso ao bucket e às credenciais equivale a acesso administrativo à frota.

Para projetos Worker implantados com celld deploy, o esbuild precisa estar no PATH. Imagens de contêiner são publicadas para Linux x86-64 e ARM64. O repositório usa licença Apache-2.0; tópicos do GitHub e métricas detalhadas de produção não são informados no repositório.

Resumo rápido

  • Projeto: Durable Objects autogerenciados e distribuídos
  • Licença: Apache-2.0
  • Linguagem: Rust
  • Estrelas: 2.707
  • Ranking: GitHub Trending diário
  • Risco principal: maturidade inicial e configuração de segurança entre peers

Fontes

Fontes

RustApache-2.0Open SourceGitHub Trending
Como fazemos: nossa equipe monitora diariamente os repositórios de código aberto em maior alta e produz esta cobertura com apoio de modelos de linguagem, sempre a partir de dados verificados na fonte primária — repositório, documentação oficial e ranking público. Os números de estrelas e a posição no ranking refletem o momento da coleta. Entenda o método.