Repolode
clockworklabs

clockworklabs/SpacetimeDB

Um banco de dados relacional que também funciona como servidor: você implanta nele a lógica da aplicação, e os clientes se conectam diretamente para receber atualizações em tempo real.

Alternativa open source a:Firebase

Estrelas
25,328
Forks
1,091
Issues abertas
942
Último commit
há 2 horas

O que é?

O SpacetimeDB elimina a camada separada de servidor web ou de jogo entre os clientes e o banco de dados. Você escreve o schema e a lógica de negócio como um módulo em Rust, C#, TypeScript ou C++, e o SpacetimeDB compila esse módulo, executa-o dentro do banco de dados e sincroniza o estado com os clientes conectados. Os clientes chamam reducers (funções que modificam dados) e assinam tabelas; o servidor envia automaticamente as alterações confirmadas, sem necessidade de polling.

Todo o estado da aplicação fica em memória para permitir acesso com baixa latência, enquanto um commit log em disco garante durabilidade e recuperação após falhas. As transações seguem as garantias ACID. Desde a versão 2.0, por padrão, as atualizações de assinaturas e os resultados dos reducers só são enviados quando a transação se torna durável; os clientes podem desativar esse comportamento para obter menor latência.

Os SDKs de cliente atendem TypeScript (incluindo React, Vue, Svelte e Node.js), Rust, C# (incluindo Unity) e C++ para Unreal Engine. O projeto é voltado a aplicações web reativas, como chats, dashboards e ferramentas colaborativas, além de jogos multiplayer.

Recursos principais

  • 01A lógica da aplicação é executada dentro do banco de dados como um módulo escrito em Rust, C#, TypeScript ou C++.
  • 02Os clientes assinam tabelas e recebem alterações confirmadas em tempo real, sem polling.
  • 03Transações ACID, com o estado mantido em memória e um commit log em disco para garantir durabilidade e recuperação.
  • 04Leituras confirmadas retêm as atualizações até que a transação se torne durável; essa opção pode ser configurada por cliente.
  • 05SDKs de cliente para TypeScript (com hooks do React), Rust, C#/Unity e C++/Unreal Engine.
  • 06Pode ser executado localmente via Docker ou CLI, com uma opção de implantação na nuvem chamada Maincloud.

Casos de uso

  • Criar uma aplicação web colaborativa ou um serviço de chat sem um servidor de API ou uma camada de pub/sub separados.
  • Criar dashboards em tempo real, nos quais todos os clientes conectados veem as atualizações assim que acontecem.
  • Dar suporte a um jogo multiplayer, como um MMORPG, com estado de mundo compartilhado e em tempo real.
  • Escrever uma aplicação inteira em uma única linguagem e implantá-la como um único binário.

Início rápido

  1. 1

    Execute o script oficial de instalação indicado no README

  2. 2

    Faça login na sua conta

    spacetime login
  3. 3

    Crie um projeto a partir de um template e inicie o dev watcher

    spacetime dev --template chat-react-ts

Antes de usar

  • É licenciado sob a Business Source License 1.1, que disponibiliza o código-fonte, mas não é uma licença de código aberto aprovada pela OSI. Após alguns anos, ela se converte para AGPL v3.0.
  • O início rápido publica o projeto no Maincloud, um serviço de hospedagem pago com preços próprios.

Em coleções

Tópicos

Perguntas frequentes

O que é SpacetimeDB?
Um banco de dados relacional que também funciona como servidor: você implanta nele a lógica da aplicação, e os clientes se conectam diretamente para receber atualizações em tempo real. O SpacetimeDB elimina a camada separada de servidor web ou de jogo entre os clientes e o banco de dados. Você escreve o schema e a lógica de negócio como um módulo em Rust, C#, TypeScript ou C++, e o SpacetimeDB compila esse módulo, executa-o dentro do banco de dados e sincroniza o estado com os clientes conectados. Os clientes chamam reducers (funções que modificam dados) e assinam tabelas; o servidor envia automaticamente as alterações confirmadas, sem necessidade de polling.
SpacetimeDB é gratuito? Qual é a licença?
SpacetimeDB é open source sob a licença Other. Confira os termos da licença antes de usá-lo em produtos comerciais.
SpacetimeDB ainda é mantido?
Manutenção ativa. O último commit de SpacetimeDB foi em 22 de out. de 2026.
Para que posso usar SpacetimeDB?
Criar uma aplicação web colaborativa ou um serviço de chat sem um servidor de API ou uma camada de pub/sub separados. Criar dashboards em tempo real, nos quais todos os clientes conectados veem as atualizações assim que acontecem. Dar suporte a um jogo multiplayer, como um MMORPG, com estado de mundo compartilhado e em tempo real. Escrever uma aplicação inteira em uma única linguagem e implantá-la como um único binário.
Como instalar SpacetimeDB?
Execute o script oficial de instalação indicado no README Faça login na sua conta: spacetime login Crie um projeto a partir de um template e inicie o dev watcher: spacetime dev --template chat-react-ts
Onde consigo SpacetimeDB?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/clockworklabs/SpacetimeDB

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados