- SpacetimeDB, veritabanı ile sunucu işlevlerini birleştiren bir sistemdir
- Geleneksel web veya oyun sunucusunu ayrı tutmak yerine, istemci doğrudan veritabanına bağlanarak uygulama mantığını çalıştırır
- Rust ile yazılmış "modül" biçimindeki stored procedure'ler aracılığıyla uygulama mantığı doğrudan veritabanına yüklenebilir
- Tüm uygulama tek bir Rust binary'si olarak dağıtılabilir; DevOps, container, sunucu ve mikroservislere gerek yoktur
Başlıca özellikler
- Smart contract'lara benzer bir kavramdır, ancak blockchain ile ilgili değildir
- Mevcut smart contract sistemlerinden çok daha hızlıdır
- MMORPG oyunu BitCraft Online'ın backend'i yalnızca SpacetimeDB'den oluşur
- Oyun içindeki tüm öğeler veritabanında gerçek zamanlı olarak işlenir ve istemciyle senkronize edilir
- Gerçek zamanlı uygulamalar için optimize edilmiştir ve gecikmeyi en aza indirme hedefiyle tasarlanmıştır
- Uygulama durumu bellekte tutulur ve kurtarma için WAL (Write-Ahead Log) içine kaydedilir
Kurulum yöntemi
macOS / Linux kurulumu
Windows kurulumu
Docker ile çalıştırma
- Docker kullanıyorsanız
docker run --rm --pull always -p 3000:3000 clockworklabs/spacetime start
Başlamak için 4 adım
spacetime CLI aracını kurun
spacetime start komutuyla tek bir node çalıştırın
- Desteklenen dillerden biriyle bir modül yazıp yükleyin
- İstemci kütüphanesiyle veritabanına bağlanın
Dil desteği
Sunucu tarafı modülleri
İstemci kütüphaneleri
Lisans bilgisi
- BSL 1.1 lisansını kullanır
- Belirli bir sürenin ardından AGPL v3.0 + linking exception'a geçer
- SpacetimeDB ile entegre çalışan uygulamaların kaynak kodunun açıklanmasını zorunlu kılmaz
- Topluluğa yapılan katkıların geri dönmesini hedefleyen özgür yazılım lisanslama yaklaşımıdır
Resmi belgeler
5 yorum
İlginç bir fikir. DDoS veya Auth gibi şeyleri nasıl iyi çözdüklerini merak ediyorum.
En azından adı aşırı havalı duruyor
Gerçekten çok yenilikçi ve iyi göründüğünü düşünmüştüm ama meğerse çok eskiden GitHub yıldızını vermişim bile. Hafızam...
SpaceTimeDB - VT ve sunucuyu tek bir yapıda birleştiren çözüm
1,5 yıl önce tanıtılmıştı, görünüşe göre düzenli olarak iyi güncellemeler almaya devam ediyor. a16z ve Supercell de yatırım yapmış.
Hacker News görüşleri
SpacetimeDB, "kozmik düşünceyi yeniden yapılandırma" diyebileceğimiz bir teknik kategoriye giriyor. Yapısal yeniden düzenleme yoluyla performansı büyük ölçüde artırma potansiyeli taşıyor
Önceki gönderideki en iyi yorumlar:
SpacetimeDB, BitCraft adlı büyük ölçekli bir MMORPG'yi desteklemek için geliştirildi
Bu teknolojiyle oyun sunucusunun nasıl yazılacağını anlamak zor
BitCraft sevimli görünüyor
YouTube, SpacetimeDB'yi öneriyor ama video oyunu yapmış değil
Bu proje BSL kapsamında ve biraz ağır bir zaman kısıtı içeriyor
İlişkisel veritabanı şemasını, uygulamanın veriyi işleme biçimiyle karıştırmamak gerekir
Tek oyunculu bir oyunda veritabanını yerelde çalıştırmanın anlamlı olup olmadığını merak ediyorum
Bellek içi bir veritabanına benziyor ve alan mantığını barındırmak için bir WASM runtime'a sahip