Sobre o projeto

SpacetimeDB é um projeto de código aberto da Clockwork Labs que combina um banco de dados relacional com um ambiente de execução de servidor. Em vez de implantar um servidor web ou de jogo separado entre clientes e o banco de dados, os desenvolvedores escrevem a lógica do aplicativo como um módulo em Rust, C#, TypeScript ou C++. O módulo define tabelas e redutores (funções que mutam dados). Os clientes se conectam diretamente ao banco de dados, chamam redutores e se inscrevem em tabelas. Quando os dados mudam, o SpacetimeDB empurra atualizações para os clientes inscritos automaticamente, de modo que os clientes não precisam sondar ou buscar novamente. O README afirma que todo o estado do aplicativo é mantido na memória para acesso rápido, enquanto um log de commit no disco fornece durabilidade e recuperação de falhas, e que o sistema fornece garantias ACID. Ele é descrito como sendo usado para o MMORPG BitCraft Online, cujo backend roda como um único módulo. A instalação está disponível via scripts de shell no macOS/Linux e PowerShell no Windows, seguida por um login CLI que autentica com o GitHub. Um comando de início rápido cria um projeto a partir de um template, publica-o no Maincloud e observa as mudanças de arquivo para reconstruir e republicar automaticamente. O banco de dados também pode ser executado com Docker ou construído a partir do código-fonte com Cargo. Módulos de servidor são suportados em Rust, C#, TypeScript e C++; SDKs de cliente suportam TypeScript (React, Next.js, Vue, Svelte, Angular, Node.js, Bun, Deno), Rust, C# (standalone e Unity) e C++ (Unreal Engine). A documentação cobre inícios rápidos, conceitos básicos, tutoriais, implantação, referências CLI e SQL. O projeto é licenciado sob a Business Source License 1.1, que se converte em AGPL v3.0 com uma exceção de vinculação após alguns anos, de modo que os usuários não são obrigados a abrir o código-fonte de seu próprio código.