- SpacetimeDB là một hệ thống kết hợp cơ sở dữ liệu và chức năng máy chủ
- Thay vì đặt riêng máy chủ web hoặc máy chủ game truyền thống, client có thể kết nối trực tiếp tới cơ sở dữ liệu để thực thi logic ứng dụng
- Có thể tải trực tiếp logic ứng dụng lên cơ sở dữ liệu thông qua stored procedure ở dạng "module" được viết bằng Rust
- Có thể triển khai toàn bộ ứng dụng bằng một binary Rust duy nhất, không cần DevOps, container, server hay microservice
Tính năng chính
- Có khái niệm tương tự smart contract nhưng không liên quan tới blockchain
- Nhanh hơn rất nhiều so với các hệ thống smart contract hiện có
- Backend của game MMORPG BitCraft Online được cấu thành chỉ bằng SpacetimeDB
- Mọi thành phần trong game đều được xử lý theo thời gian thực trong cơ sở dữ liệu và đồng bộ tới client
- Được tối ưu cho ứng dụng thời gian thực và được thiết kế với mục tiêu giảm thiểu độ trễ
- Trạng thái ứng dụng được giữ trong bộ nhớ và được ghi vào WAL (Write-Ahead Log) để phục hồi
Cách cài đặt
Cài đặt trên macOS / Linux
Cài đặt trên Windows
Chạy bằng Docker
- Nếu sử dụng Docker
docker run --rm --pull always -p 3000:3000 clockworklabs/spacetime start
4 bước để bắt đầu
- Cài đặt công cụ CLI
spacetime
- Chạy một single node bằng lệnh
spacetime start
- Viết và tải module lên bằng một trong các ngôn ngữ được hỗ trợ
- Kết nối tới cơ sở dữ liệu bằng thư viện client
Hỗ trợ ngôn ngữ
Module phía server
Thư viện client
Thông tin giấy phép
- Tuân theo giấy phép BSL 1.1
- Sau một khoảng thời gian sẽ chuyển sang AGPL v3.0 + ngoại lệ liên kết
- Không yêu cầu công khai mã nguồn của các ứng dụng tích hợp với SpacetimeDB
- Cách cấp phép phần mềm tự do được thiết kế để các đóng góp được hoàn lại cho cộng đồng
Tài liệu chính thức
5 bình luận
Ý tưởng khá thú vị. Mình tò mò không biết họ đã giải quyết tốt các vấn đề như DDoS hay Auth như thế nào.
Chỉ riêng cái tên thôi đã ngầu hết chỗ nói rồi.
Tôi đã nghĩ đây thực sự là một ý tưởng rất mới mẻ và trông khá hay, nhưng hóa ra trước đây từ lâu tôi đã từng đánh dấu sao trên GitHub rồi. Trí nhớ đúng là...
SpaceTimeDB - Kết hợp DB và server thành một
Đã được giới thiệu cách đây khoảng một năm rưỡi, và có vẻ vẫn đang được cập nhật rất tốt. Cả a16z lẫn Supercell cũng đã đầu tư vào dự án này.
Ý kiến trên Hacker News
SpacetimeDB thuộc một thể loại công nghệ kiểu "tái cấu trúc tư duy ở tầm vũ trụ". Điều này có thể mang lại khả năng cải thiện hiệu năng rất lớn thông qua việc tái sắp xếp cấu trúc
Bình luận hay nhất trong bài đăng trước:
SpacetimeDB được phát triển để hỗ trợ BitCraft, một MMORPG quy mô lớn
Rất khó hiểu cách viết game server bằng công nghệ này
BitCraft trông khá dễ thương
YouTube đang đề xuất SpacetimeDB, nhưng tôi chưa từng làm game
Dự án này được cấp phép theo BSL, với giới hạn thời gian khá phiền phức
Không nên nhầm lẫn giữa schema của cơ sở dữ liệu quan hệ và cách ứng dụng xử lý dữ liệu
Tò mò không biết việc chạy cơ sở dữ liệu cục bộ trong game chơi đơn có ý nghĩa hay không
Có vẻ đây là một cơ sở dữ liệu in-memory, kèm runtime WASM để host domain logic