Q: SpaceTimeDB 与传统数据库有什么区别?
传统架构需要 Client → Server → Database 三层。SpaceTimeDB 将服务器和数据库合二为一,客户端直接连接数据库调用 Reducer。无需写后端 API,业务逻辑在数据库内运行。
Q: SpaceTimeDB 只适合游戏吗?
不完全是。SpaceTimeDB 为实时多人应用优化,适合游戏、协作应用、聊天、实时仪表盘、IoT 平台等。任何需要实时数据同步的应用都可以使用。
Q: 数据如何持久化?
SpaceTimeDB 将所有数据保存在内存中(极速访问),同时持久化到 Commit Log。重启时从 Log 恢复完整状态。既有内存的速度,又有传统数据库的可靠性。
Q: 与 Firebase/Supabase 有什么区别?
Firebase/Supabase 是 BaaS 平台,仍需要写后端逻辑。SpaceTimeDB 将逻辑放入数据库,Reduer 是业务逻辑的唯一入口。更简单、更实时、延迟更低。
Q: 性能如何?
数据在内存中,访问延迟亚毫秒级。WebAssembly 执行接近原生速度。已用于 BitCraft 等大型多人在线游戏,支持大规模并发。
Q: 是否开源?
BSL 1.1 许可证,几年后转为 AGPL v3.0 + Linking Exception。链接例外意味着你的代码不需要开源,只需贡献对 SpaceTimeDB 本身的修改。
Q: 可以自托管吗?
可以。提供 Docker 镜像,可以在自己的服务器运行 SpaceTimeDB 实例。
Q: Reducer 像 REST 端点吗?
概念类似,但 Reducer 更强大。它在数据库事务中执行,自动获得原子性保证。调用看起来像普通函数,底层通过 WebSocket 发送请求。