このプロジェクトについて

SpacetimeDB は、Clockwork Labs によるオープンソースプロジェクトで、リレーショナルデータベースとサーバーランタイムを統合しています。開発者は、クライアントとデータベースの間に別個のウェブサーバーやゲームサーバーを配置する代わりに、Rust、C#、TypeScript、または C++ でアプリケーションロジックをモジュールとして記述します。このモジュールはテーブルとリデューサー(データを変更する関数)を定義します。クライアントはデータベースに直接接続し、リデューサーを呼び出し、テーブルを購読します。データが変更されると、SpacetimeDB は自動的に購読しているクライアントに更新をプッシュするため、クライアントはポーリングや再取得を行う必要はありません。README には、すべてのアプリケーション状態は高速アクセスのためにメモリに保持され、ディスク上のコミットログが耐久性とクラッシュリカバリーを提供し、ACID 整合性が保証されると記載されています。このシステムは、MMORPG の BitCraft Online のバックエンドとして使用されており、そのバックエンドは単一のモジュールとして実行されています。インストールは、macOS/Linux ではシェルスクリプト、Windows では PowerShell を使用し、その後、GitHub で認証する CLI ログインを行います。クイックスタートコマンドは、テンプレートからプロジェクトを作成し、Maincloud に公開し、ファイル変更を監視して自動的に再構築および再公開します。データベースは Docker で実行することも、Cargo でソースからビルドすることもできます。サーバーモジュールは Rust、C#、TypeScript、C++ でサポートされており、クライアント SDK は TypeScript(React、Next.js、Vue、Svelte、Angular、Node.js、Bun、Deno)、Rust、C#(スタンドアロンおよび Unity)、C++(Unreal Engine)をサポートしています。ドキュメントには、クイックスタート、コアコンセプト、チュートリアル、デプロイメント、CLI および SQL リファレンスが含まれています。このプロジェクトは、Business Source License 1.1 の下でライセンスされており、数年後にリンク例外付きの AGPL v3.0 に変換されるため、ユーザーは自分のコードをオープンソースにする必要はありません。