- SpacetimeDB é um sistema que combina banco de dados e funcionalidades de servidor
- Em vez de manter separadamente um servidor web ou de jogos tradicional, o cliente se conecta diretamente ao banco de dados para executar a lógica da aplicação
- É possível enviar diretamente para o banco de dados a lógica do app por meio de procedures armazenadas no formato de "módulos" escritos em Rust
- Toda a aplicação pode ser implantada como um único binário Rust, sem necessidade de DevOps, contêineres, servidores ou microsserviços
Principais recursos
- O conceito é semelhante ao de smart contracts, mas não tem relação com blockchain
- É muito mais rápido do que sistemas tradicionais de smart contracts
- O backend do jogo MMORPG BitCraft Online é composto apenas por SpacetimeDB
- Todos os elementos dentro do jogo são processados em tempo real no banco de dados e sincronizados com o cliente
- É otimizado para aplicações em tempo real e foi projetado com o objetivo de minimizar a latência
- O estado da aplicação é mantido em memória e registrado em um WAL (Write-Ahead Log) para recuperação
Como instalar
Instalação no macOS / Linux
Instalação no Windows
Executar com Docker
- Se você usa Docker
docker run --rm --pull always -p 3000:3000 clockworklabs/spacetime start
4 etapas para começar
- Instalar a ferramenta de CLI
spacetime
- Executar um nó único com o comando
spacetime start
- Escrever e enviar um módulo em uma das linguagens suportadas
- Conectar ao banco de dados com uma biblioteca cliente
Suporte a linguagens
Módulos do lado do servidor
Bibliotecas cliente
Informações de licença
- Segue a licença BSL 1.1
- Após um determinado período, muda para AGPL v3.0 + exceção de linking
- Não exige a divulgação do código-fonte de aplicações integradas ao SpacetimeDB
- Um modelo de licença de software livre projetado para que as contribuições retornem à comunidade
Documentação oficial
5 comentários
Ideia interessante. Fico curioso para saber como eles resolveram bem coisas como DDoS e autenticação.
Só o nome já é estiloso pra caramba.
Achei realmente bem inovador e pareceu muito bom, mas pelo visto eu já tinha dado estrela no GitHub faz tempo. Minha memória...
SpaceTimeDB - combinando DB e servidor em um só
Tinha sido apresentado há um ano e meio, e continua sendo bem atualizado. A a16z e a Supercell também investiram nele.
Comentários do Hacker News
O SpacetimeDB pertence ao gênero tecnológico de "reorganização do pensamento cósmico". Isso traz a possibilidade de melhorar muito o desempenho por meio de uma reorganização estrutural
Melhores comentários da postagem anterior:
O SpacetimeDB foi desenvolvido para dar suporte ao BitCraft, um MMORPG em larga escala
É difícil entender como escrever um servidor de jogo usando essa tecnologia
O BitCraft parece fofo
O YouTube recomenda o SpacetimeDB, mas nunca fez videogames
Este projeto é coberto pela BSL e tem um limite de tempo um tanto pesado
Não se deve confundir o esquema de banco de dados relacional com a forma como o app processa os dados
Fico me perguntando se faz sentido rodar um banco de dados localmente em um jogo single-player
Parece ser um banco de dados em memória, com um runtime WASM para hospedar a lógica de domínio