Repolode
clockworklabs

clockworklabs/SpacetimeDB

Реляционная база данных, которая одновременно служит сервером: логика приложения запускается в ней, а клиенты подключаются напрямую и получают обновления в реальном времени.

Open source альтернатива:Firebase

Звёзды
25,328
Форки
1,091
Открытые issues
942
Последний коммит
2 часа назад

Что это?

SpacetimeDB устраняет необходимость в отдельном веб- или игровом сервере между клиентами и базой данных. Вы описываете схему и бизнес-логику в виде модуля на Rust, C#, TypeScript или C++, а SpacetimeDB компилирует его, запускает внутри базы данных и синхронизирует состояние с подключёнными клиентами. Клиенты вызывают reducers — функции, изменяющие данные, — и подписываются на таблицы, а сервер автоматически отправляет им зафиксированные изменения без опроса.

Всё состояние приложения хранится в памяти для быстрого доступа, а журнал коммитов на диске обеспечивает сохранность данных и восстановление после сбоев. Транзакции соответствуют требованиям ACID. Начиная с версии 2.0, по умолчанию обновления подписок и результаты reducers не отправляются клиентам, пока транзакция не будет надёжно сохранена; ради меньшей задержки клиенты могут отключить это поведение.

Клиентские SDK доступны для TypeScript (в том числе для React, Vue, Svelte и Node.js), Rust, C# (включая Unity) и C++ для Unreal Engine. Проект предназначен для реактивных веб-приложений — например, чатов, дашбордов и инструментов для совместной работы — и многопользовательских игр.

Ключевые возможности

  • 01Логика приложения запускается внутри базы данных в виде модуля на Rust, C#, TypeScript или C++.
  • 02Клиенты подписываются на таблицы и получают зафиксированные изменения в реальном времени без опроса.
  • 03Транзакции ACID; состояние хранится в памяти, а журнал коммитов на диске обеспечивает сохранность данных и восстановление.
  • 04В режиме подтверждённого чтения обновления задерживаются до надёжного сохранения транзакции; настройка доступна для каждого клиента.
  • 05Клиентские SDK для TypeScript (с React hooks), Rust, C#/Unity и C++/Unreal Engine.
  • 06Можно запускать локально через Docker или CLI; для облачного развёртывания доступен вариант под названием Maincloud.

Сценарии использования

  • Создание веб-приложения для совместной работы или чата без отдельного API-сервера и слоя pub/sub.
  • Создание дашбордов в реальном времени, где каждый подключённый клиент сразу видит обновления.
  • Обеспечение многопользовательской игры, например MMORPG, общим состоянием игрового мира в реальном времени.
  • Разработка всего приложения на одном языке и развёртывание в виде одного бинарного файла.

Быстрый старт

  1. 1

    Запустите официальный скрипт установки из README

  2. 2

    Войдите в свой аккаунт

    spacetime login
  3. 3

    Создайте проект на основе шаблона и запустите dev watcher

    spacetime dev --template chat-react-ts

Что важно знать

  • Лицензия — Business Source License 1.1: исходный код доступен, но это не лицензия с открытым исходным кодом, одобренная OSI. Через несколько лет она сменится на AGPL v3.0.
  • В инструкции по быстрому старту проект публикуется на Maincloud — платном хостинге со своими тарифами.

В подборках

Темы

Частые вопросы

Что такое SpacetimeDB?
Реляционная база данных, которая одновременно служит сервером: логика приложения запускается в ней, а клиенты подключаются напрямую и получают обновления в реальном времени. SpacetimeDB устраняет необходимость в отдельном веб- или игровом сервере между клиентами и базой данных. Вы описываете схему и бизнес-логику в виде модуля на Rust, C#, TypeScript или C++, а SpacetimeDB компилирует его, запускает внутри базы данных и синхронизирует состояние с подключёнными клиентами. Клиенты вызывают reducers — функции, изменяющие данные, — и подписываются на таблицы, а сервер автоматически отправляет им зафиксированные изменения без опроса.
SpacetimeDB можно использовать бесплатно? Какая у него лицензия?
SpacetimeDB распространяется с открытым исходным кодом под лицензией Other. Перед использованием в коммерческих продуктах проверьте условия лицензии.
SpacetimeDB всё ещё поддерживается?
Активно поддерживается. Последний коммит в SpacetimeDB — 22 окт. 2026 г..
Для чего можно использовать SpacetimeDB?
Создание веб-приложения для совместной работы или чата без отдельного API-сервера и слоя pub/sub. Создание дашбордов в реальном времени, где каждый подключённый клиент сразу видит обновления. Обеспечение многопользовательской игры, например MMORPG, общим состоянием игрового мира в реальном времени. Разработка всего приложения на одном языке и развёртывание в виде одного бинарного файла.
Как установить SpacetimeDB?
Запустите официальный скрипт установки из README Войдите в свой аккаунт: spacetime login Создайте проект на основе шаблона и запустите dev watcher: spacetime dev --template chat-react-ts
Где скачать SpacetimeDB?
Исходный код и инструкции по установке — на GitHub: https://github.com/clockworklabs/SpacetimeDB

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты