Instant — клиентская база данных и backend для приложений: запросы, аутентификация, права доступа, хранилище, presence и синхронизация в реальном времени в одном сервисе.
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
Запустите официальный скрипт установки из README
- 2
Войдите в свой аккаунт
spacetime login - 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 обновляется ежедневно.
Похожие проекты
Реактивная база данных с открытым исходным кодом для веб-приложений: серверные функции и логику данных можно писать на чистом TypeScript.
Платформа разработки на базе Postgres: управляемая база данных с аутентификацией, автоматически генерируемыми API, хранилищем и функциями realtime — альтернатива Firebase.
Универсальный open-source-бэкенд на TypeScript со встроенными real-time-уведомлениями, хранением данных с расширенным поиском и управлением пользователями.
Open-source альтернатива Firebase на базе PostgreSQL с мгновенным GraphQL API, аутентификацией, хранилищем файлов и serverless-функциями.
Лёгкая отказоустойчивая распределённая реляционная база данных на SQLite с репликацией между узлами через консенсус Raft.