- SpacetimeDB est un système qui combine base de données et fonctions serveur
- Au lieu d’avoir séparément un serveur web ou de jeu traditionnel, les clients se connectent directement à la base de données pour exécuter la logique applicative
- Il est possible de téléverser directement la logique de l’application dans la base de données via des procédures stockées sous forme de « modules » écrits en Rust
- L’application entière peut être déployée sous la forme d’un unique binaire Rust, ce qui rend inutiles DevOps, conteneurs, serveurs et microservices
Principales caractéristiques
- Le concept est similaire à celui des smart contracts, mais sans lien avec la blockchain
- Beaucoup plus rapide que les systèmes de smart contracts existants
- Le backend du MMORPG BitCraft Online repose uniquement sur SpacetimeDB
- Tous les éléments du jeu sont traités en temps réel dans la base de données et synchronisés avec les clients
- Optimisé pour les applications temps réel, avec une conception visant à minimiser la latence
- L’état de l’application est conservé en mémoire et enregistré dans le WAL (Write-Ahead Log) pour permettre la récupération
Installation
Installation sur macOS / Linux
Installation sur Windows
Exécution avec Docker
- Si vous utilisez Docker
docker run --rm --pull always -p 3000:3000 clockworklabs/spacetime start
4 étapes pour démarrer
- Installer l’outil CLI
spacetime
- Lancer un nœud unique avec la commande
spacetime start
- Écrire et téléverser un module dans l’un des langages pris en charge
- Se connecter à la base de données avec une bibliothèque cliente
Prise en charge des langages
Modules côté serveur
Bibliothèques clientes
Informations sur la licence
- Distribué sous licence BSL 1.1
- Bascule après une certaine période vers AGPL v3.0 + exception de liaison
- N’exige pas la publication du code source des applications intégrées à SpacetimeDB
- Une approche de licence de logiciel libre conçue pour que les contributions reviennent à la communauté
Documentation officielle
5 commentaires
Idée intéressante. Je me demande comment ils ont bien résolu des aspects comme le DDoS ou l'authentification.
Le nom a vraiment un style incroyable.
Je trouvais ça vraiment original et prometteur, mais il s'avère que j'avais déjà mis une étoile sur GitHub il y a longtemps. Ma mémoire...
SpaceTimeDB - fusion de la base de données et du serveur en un seul
Il avait déjà été présenté il y a un an et demi, et il continue d’être bien mis à jour. a16z et Supercell ont également investi.
Avis Hacker News
SpacetimeDB appartient à une catégorie technique de « reconfiguration de la pensée à l’échelle cosmique ». Cela offre la possibilité d’améliorer fortement les performances via une réorganisation structurelle
Meilleur commentaire du précédent post :
SpacetimeDB a été développé pour prendre en charge BitCraft, un MMORPG de grande ampleur
Il est difficile de comprendre comment écrire un serveur de jeu avec cette technologie
BitCraft a l’air mignon
YouTube recommande SpacetimeDB mais n’a jamais créé de jeu vidéo
Ce projet est couvert par la BSL, avec une limite de temps assez contraignante
Il ne faut pas confondre le schéma d’une base de données relationnelle avec la manière dont une app traite les données
Je me demande s’il est pertinent d’exécuter la base de données en local pour un jeu solo
Cela ressemble à une base de données en mémoire, avec un runtime WASM pour héberger la logique métier