- SpacetimeDB es un sistema que combina base de datos y funciones de servidor
- En lugar de tener por separado un servidor web o de juegos tradicional, el cliente se conecta directamente a la base de datos para ejecutar la lógica de la aplicación
- Permite subir directamente la lógica de la app a la base de datos mediante procedimientos almacenados en forma de "módulos" escritos en Rust
- Toda la aplicación puede desplegarse como un único binario de Rust, por lo que no se necesitan DevOps, contenedores, servidores ni microservicios
Características principales
- Es un concepto similar a los contratos inteligentes, pero no tiene relación con blockchain
- Es mucho más rápido que los sistemas tradicionales de contratos inteligentes
- El backend del juego MMORPG BitCraft Online está compuesto únicamente por SpacetimeDB
- Todos los elementos dentro del juego se procesan en tiempo real en la base de datos y se sincronizan con el cliente
- Está optimizado para aplicaciones en tiempo real y diseñado con el objetivo de minimizar la latencia
- El estado de la aplicación se mantiene en memoria y se registra en el WAL (Write-Ahead Log) para su recuperación
Cómo instalarlo
Instalación en macOS / Linux
Instalación en Windows
Ejecutarlo con Docker
- Si usas Docker
docker run --rm --pull always -p 3000:3000 clockworklabs/spacetime start
4 pasos para empezar
- Instalar la herramienta CLI
spacetime
- Ejecutar un solo nodo con el comando
spacetime start
- Escribir y subir un módulo en uno de los lenguajes compatibles
- Conectarse a la base de datos con una librería cliente
Soporte de lenguajes
Módulos del lado del servidor
Librerías cliente
Información de licencia
- Usa la licencia BSL 1.1
- Después de cierto tiempo cambia a AGPL v3.0 + excepción de enlace
- No exige publicar el código fuente de las aplicaciones integradas con SpacetimeDB
- Es un modelo de licencia de software libre diseñado para que las contribuciones regresen a la comunidad
Documentación oficial
5 comentarios
Es una idea interesante. Me da curiosidad saber cómo resolvieron bien cosas como DDoS o la autenticación.
El nombre sí que tiene muchísimo estilo.
De verdad pensé que era algo muy novedoso y que se veía muy bien, pero resulta que ya le había puesto estrella en GitHub hace muchísimo tiempo. Mi memoria...
SpaceTimeDB - combinando la BD y el servidor en uno
Lo presentaron hace un año y medio, y veo que lo han seguido actualizando muy bien. Parece que también recibieron inversión de a16z y Supercell.
Comentarios en Hacker News
SpacetimeDB pertenece a una categoría tecnológica de "reestructuración del pensamiento a escala cósmica". Esto tiene el potencial de mejorar mucho el rendimiento mediante una reorganización estructural
Mejor comentario de la publicación anterior:
SpacetimeDB fue desarrollado para impulsar BitCraft, un MMORPG masivo
Cuesta entender cómo escribir servidores de juego usando esta tecnología
BitCraft se ve adorable
YouTube recomienda SpacetimeDB, pero nunca ha hecho videojuegos
Este proyecto está cubierto por BSL y tiene una limitación de tiempo algo pesada
No hay que confundir el esquema de una base de datos relacional con la forma en que una app procesa los datos
Me pregunto si tiene sentido correr la base de datos localmente en juegos para un solo jugador
Parece ser una base de datos en memoria, con un runtime de WASM para alojar la lógica de dominio