SpacetimeDB
surrealdb
SpacetimeDB | surrealdb | |
---|---|---|
14 | 94 | |
4,088 | 25,607 | |
5.3% | 2.6% | |
9.8 | 9.8 | |
3 days ago | 1 day ago | |
Rust | Rust | |
GNU General Public License v3.0 or later | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
SpacetimeDB
- Why SQLite Uses Bytecode
-
3 years of fulltime Rust game development, and why we're leaving Rust behind
I don't use Rust for game dev but I do for low level libraries and find it easier than C++ to get started. I have enjoyed it more than Java and like it for different reasons than Go, but it feels good to program in.
As for the design patterns that a complex game requires, if you are considering Rust for game dev and ecs design patterns it might be useful to check out projects that are Rust centric like https://spacetimedb.com/.
-
What if an SQL Statement Returned a Database?
Yeah, I worked on https://tablam.org and https://spacetimedb.com.
It becomes pretty clear that `order` is a significant property to make useful (and performant!) programs. "Duplicates" is also required to make usefull programs.
One nonobvious reason for this: You wanna report that a `customer` has a duplicated key `1`. If you CAN'T model `[(customer.id = 1), (customer.id = 1)]` then you can't report errors! And `erroneous` data is VITAL to make useful programs because then the only possibility is "perfect" data, and that is not possible!
Another reason is that we want to `count` duplicates, to see `duplicates`, and other NON-obvious at first: "What is a duplicate?". Get fun with floats, Unicode, combining case and non-case sensitive input... and is obvious that for useful programs IS REQUIRED to support bags in an extended version of the relational model.
And yet...
IS very important to remember about `set semantics` and try to adhere to it when makes sense. Your query planner will like it. You "valid" constraints like it. And `unique index` like it. And so on...
- SpacetimeDB v0.7 Released: WebAssembly stored procedure database
- SpacetimeDB v0.7 Released: WebAssembly stored procedure database written in Rust
-
SQLite 3.43.0 Released
> I asked was about querying data without ever using a SQL language, like tapping directly into the data.
I agree (making https://tablam.org to try a fix & working on https://github.com/clockworklabs/SpacetimeDB in the SQL conformance).
Before I think SQL was bad. *Now I'm certain*. SQL is absurdly massive for things that could have collapse all the features 10x or more.
However, working in an RDBM now I also understand why is not desirable to make "raw" calls to the DB: The engine MUST mediate all the calls to make things works (from query optimization, execution, iteration, lock management, transaction management, etc).
Is incredible how much sophistication is in a simple `SELECT * FROM table`.
What I wish is to build a `Wasm-like` IR so that is what anybody target, and `SQL` is not the mediator.
- A new database written in Rust that replaces your server entirely
-
Show HN: SpacetimeDB – The database that replaces your server
I wouldn't ordinarily chirp about this because it seems to be such a common typo/mistake but the fact you have a badge for it <https://github.com/clockworklabs/SpacetimeDB/blob/0f1fdf62d0...> as well as typoing it down in the license section <https://github.com/clockworklabs/SpacetimeDB/blob/0f1fdf62d0...> makes it worth pointing out in hopes of correction
The SPDX for BUsiness Source License is BUSL https://spdx.org/licenses/BUSL-1.1.html but the SPDX for Boost Source License is BSL https://spdx.org/licenses/BSL-1.0.html
Based on a search <https://shields.io/search?q=license> it seems you're using the custom badge syntax <https://shields.io/badges/static-badge> so you have influence over the correction
- SpacetimeDB: A new database written in Rust that replaces your server entirely
surrealdb
-
Show HN: I made a tool to easily compare pricing of developer tools and services
you should add https://surrealdb.com -- basically an open source firebase. and they will launch a paid cloud offering soon.
-
Task tracker application using NextJS and SurrealDB
In this article, I have shared how I have built a simple task-tracking full-stack application using NextJS and SurrealDB.
-
The one thing I do not like about the Nix package manager (and a fix for it)
In this article, I'll show you how you can create a binary package for your desired program. I wanted to download the SurrealDB package, but the package on nix was a source package, meaning that I had to spend over 50 minutes waiting for a stupid package to compile.
-
2024 Web Development Wish List
Get Cloud Version going!
-
Live Queries in Rust
SurrealDB comes with a LIVE SELECT statement that allows you to listen for creations, updates and deletions to specific records you are interested in or entire tables. While you could already take advantage of this powerful feature with our JavaScript SDK or WebSockets, the Rust SDK added an API for it in v1.1.0. The Rust API for live queries builds on top of the already existing select method by simply adding a live method which converts the select query into a live select one. It works seamlessly with our current API, so you can use it with single records, a range of records, or entire tables. Unlike the normal select method which returns either a single result or a vector of results, it returns a stream of notifications. This works for the WebSocket engine and the local ones (the key value stores you can embed in your app). The only engine not yet supported is the HTTP one. In this article, we show some examples of running live queries via the Rust SDK. We will skip imports for brevity but your IDE and/or the Rust compiler should give you the correct suggestions. Please refer to this example in our repo for a full, working example.
-
SurrealDB 1.0
1.0 version but https://github.com/surrealdb/surrealdb/issues/1548 is still open :)
- SurrealDB Dependents
-
How to Design a SurrealDB schema and create a basic client for TypeScript
In the midst of a dynamic landscape of exciting new projects, one name shines bright — SurrealDB.
- SurrealDB 1.0 Live
- SurrealDB the Scalable Rust SQL/NoSQL/Graph DB Released v1.0.0 Today
What are some alternatives?
pocketbase - Open Source realtime backend in 1 file
anchor - ⚓ Solana Sealevel Framework
tikv - Distributed transactional key-value database, originally created to complement TiDB
aptos-core - Aptos is a layer 1 blockchain built to support the widespread use of blockchain through better technology and user experience.
neon - Rust bindings for writing safe and fast native Node.js modules.
ink - Parity's ink! to write smart contracts.
tantivy - Tantivy is a full-text search engine library inspired by Apache Lucene and written in Rust
sui - Sui, a next-generation smart contract platform with high throughput, low latency, and an asset-oriented programming model powered by the Move programming language
drizzle-orm - Headless TypeScript ORM with a head. Runs on Node, Bun and Deno. Lives on the Edge and yes, it's a JavaScript ORM too 😅
amber - All things AMBER
Apache AGE - Graph database optimized for fast analysis and real-time data processing. It is provided as an extension to PostgreSQL.