À propos du projet
SpacetimeDB est un projet open-source de Clockwork Labs qui combine une base de données relationnelle avec un runtime serveur. Au lieu de déployer un serveur web ou de jeu séparé entre les clients et la base de données, les développeurs écrivent la logique de l’application sous forme de module en Rust, C#, TypeScript ou C++. Le module définit des tables et des réducteurs (fonctions qui mutent les données). Les clients se connectent directement à la base de données, appellent les réducteurs et s’abonnent aux tables. Lorsque les données changent, SpacetimeDB envoie automatiquement les mises à jour aux clients abonnés, éliminant ainsi le besoin de sondage ou de rechargement. Le README indique que tout l’état de l’application est conservé en mémoire pour un accès rapide, tandis qu’un journal de commit sur disque assure la durabilité et la récupération après crash, avec des garanties ACID. Le système est utilisé pour le MMORPG BitCraft Online, dont le backend s’exécute comme un seul module. L’installation se fait via des scripts shell sur macOS/Linux et PowerShell sur Windows, suivie d’une connexion CLI qui s’authentifie avec GitHub. Une commande de démarrage rapide crée un projet à partir d’un template, le publie sur Maincloud et surveille les changements de fichiers pour reconstruire et republier automatiquement. La base de données peut aussi être exécutée avec Docker ou construite à partir des sources avec Cargo. Les modules serveur sont supportés en Rust, C#, TypeScript et C++; les SDK clients supportent TypeScript (React, Next.js, Vue, Svelte, Angular, Node.js, Bun, Deno), Rust, C# (standalone et Unity) et C++ (Unreal Engine). La documentation couvre les démarrages rapides, les concepts de base, les tutoriels, le déploiement, ainsi que les références CLI et SQL. Le projet est sous licence Business Source License 1.1, qui se convertit en AGPL v3.0 avec une exception de lien après quelques années, donc les utilisateurs ne sont pas obligés d’ouvrir leur propre code.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.