Repolode
clockworklabs

clockworklabs/SpacetimeDB

Una base de datos relacional que también funciona como servidor: despliegas en ella la lógica de tu aplicación y los clientes se conectan directamente para recibir actualizaciones en tiempo real.

Alternativa open source a:Firebase

Estrellas
25,328
Forks
1,091
Issues abiertos
942
Último commit
hace 2 horas

¿Qué es?

SpacetimeDB elimina la capa de servidor web o de videojuegos que suele interponerse entre los clientes y la base de datos. Escribes el esquema y la lógica de negocio en un módulo de Rust, C#, TypeScript o C++; SpacetimeDB lo compila, lo ejecuta dentro de la base de datos y sincroniza el estado con los clientes conectados. Los clientes llaman a reducers (funciones que modifican datos) y se suscriben a tablas; el servidor les envía automáticamente los cambios confirmados, sin necesidad de consultar periódicamente.

Todo el estado de la aplicación se mantiene en memoria para acceder a él con baja latencia, mientras que un registro de confirmaciones en disco proporciona durabilidad y recuperación ante fallos. Las transacciones cumplen las garantías ACID. Desde la versión 2.0, las actualizaciones de las suscripciones y los resultados de los reducers se retienen por defecto hasta que la transacción es durable; los clientes pueden desactivar este comportamiento para reducir la latencia.

Los SDK de cliente incluyen TypeScript (con React, Vue, Svelte y Node.js), Rust, C# —incluido Unity— y C++ para Unreal Engine. El proyecto está pensado para aplicaciones web reactivas, como chats, dashboards y herramientas colaborativas, así como para juegos multijugador.

Funciones clave

  • 01La lógica de la aplicación se ejecuta dentro de la base de datos como un módulo escrito en Rust, C#, TypeScript o C++.
  • 02Los clientes se suscriben a tablas y reciben cambios confirmados en tiempo real, sin consultas periódicas.
  • 03Transacciones ACID, con el estado en memoria y un registro de confirmaciones en disco para garantizar la durabilidad y la recuperación.
  • 04Las lecturas confirmadas retienen las actualizaciones hasta que la transacción es durable; cada cliente puede configurar este comportamiento.
  • 05SDK de cliente para TypeScript (con hooks de React), Rust, C#/Unity y C++/Unreal Engine.
  • 06Se puede ejecutar localmente mediante Docker o la CLI, y también desplegarse en la nube con Maincloud.

Casos de uso

  • Crear una aplicación web colaborativa o un servicio de chat sin un servidor API independiente ni una capa de pub/sub.
  • Crear dashboards en tiempo real donde todos los clientes conectados ven las actualizaciones a medida que ocurren.
  • Dar soporte a un juego multijugador, como un MMORPG, con un estado del mundo compartido y en tiempo real.
  • Desarrollar una aplicación completa en un solo lenguaje y desplegarla como un único binario.

Inicio rápido

  1. 1

    Ejecuta el script oficial de instalación indicado en el README

  2. 2

    Inicia sesión en tu cuenta

    spacetime login
  3. 3

    Crea un proyecto a partir de una plantilla e inicia el dev watcher

    spacetime dev --template chat-react-ts

Antes de usarlo

  • Está bajo la Business Source License 1.1, que permite acceder al código fuente, pero no es una licencia de código abierto aprobada por la OSI. Tras unos años, pasa a AGPL v3.0.
  • La guía de inicio rápido publica el proyecto en Maincloud, un servicio de alojamiento de pago con sus propias tarifas.

En colecciones

Temas

Preguntas frecuentes

¿Qué es SpacetimeDB?
Una base de datos relacional que también funciona como servidor: despliegas en ella la lógica de tu aplicación y los clientes se conectan directamente para recibir actualizaciones en tiempo real. SpacetimeDB elimina la capa de servidor web o de videojuegos que suele interponerse entre los clientes y la base de datos. Escribes el esquema y la lógica de negocio en un módulo de Rust, C#, TypeScript o C++; SpacetimeDB lo compila, lo ejecuta dentro de la base de datos y sincroniza el estado con los clientes conectados. Los clientes llaman a reducers (funciones que modifican datos) y se suscriben a tablas; el servidor les envía automáticamente los cambios confirmados, sin necesidad de consultar periódicamente.
¿SpacetimeDB es gratuito? ¿Qué licencia tiene?
SpacetimeDB es open source bajo la licencia Other. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿SpacetimeDB sigue mantenido?
Mantenimiento activo. El último commit de SpacetimeDB fue el 22 oct 2026.
¿Para qué puedo usar SpacetimeDB?
Crear una aplicación web colaborativa o un servicio de chat sin un servidor API independiente ni una capa de pub/sub. Crear dashboards en tiempo real donde todos los clientes conectados ven las actualizaciones a medida que ocurren. Dar soporte a un juego multijugador, como un MMORPG, con un estado del mundo compartido y en tiempo real. Desarrollar una aplicación completa en un solo lenguaje y desplegarla como un único binario.
¿Cómo se instala SpacetimeDB?
Ejecuta el script oficial de instalación indicado en el README Inicia sesión en tu cuenta: spacetime login Crea un proyecto a partir de una plantilla e inicia el dev watcher: spacetime dev --template chat-react-ts
¿Dónde consigo SpacetimeDB?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/clockworklabs/SpacetimeDB

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados