github clockworklabs/SpacetimeDB v2.2.0
Release v2.2.0

6 hours ago

2.2.0 is here, and this one is a meaningful step forward for SpacetimeDB's realtime performance, operational safety, and day-to-day developer workflow. There are plenty of smaller fixes in this release too, but these are the major changes worth calling out.

Features

Faster realtime transport and client throughput

We’ve introduced a new v3 WebSocket transport that batches multiple logical client messages into a single frame, cutting per-message overhead while keeping the existing message model intact (#4761). The TypeScript SDK now uses the new transport by default (#4784). Under the hood, this release also includes a substantial round of hot-path performance work across the TS client, JS module runtime, and durability pipeline to improve throughput and reduce scheduler overhead under load.

Safer production database operations

We added spacetime lock and spacetime unlock to protect databases from accidental deletion (#4502). On top of that, spacetime delete now asks for confirmation by default (#4770), spacetime list shows database names alongside identities (#4769), and spacetime publish --yes can now skip only the prompts you intend to skip instead of skipping all of them (#4885).

Better TypeScript app ergonomics

Web developers get two nice upgrades in 2.2.0. There’s now a first-party Astro + TypeScript template with SSR and a live React island for realtime updates (#4688), and the TypeScript React bindings now include a typed useProcedure hook so procedures fit the same ergonomic pattern as reducers (#4752).

Smoother schema evolution

Publishing schema changes is less brittle now. Empty tables can be dropped during auto-migration (#4593), and changing or removing a primary key no longer leaves stale schema state behind that breaks future publishes (#4666).

More powerful table and index APIs

Modules can now clear tables directly from Rust, C#, C++, and TypeScript (#4729), and the index layer gained bytes-key B-tree support for more capable multi-column range scans (#4733).

Bug Fixes

  • Improved crash resistance for JavaScript modules by preventing V8 near-heap-limit failures from taking down the server, and by rotating isolates when heap growth or fragmentation gets out of hand (#4777, #4684).
  • Fixed a schema migration bug where changing or removing a primary key could leave stale schema state behind and break a later publish (#4666).
  • Fixed table migration sequence persistence so autoinc values no longer reset after restart when a table has been migrated (#4902).
  • Hardened local durability so snapshot files, metadata.toml, and pid files are properly synced to disk instead of being vulnerable to loss on an untimely crash (#4891, #4892, #4890).
  • Fixed an Unreal SDK bug where overlapping subscriptions could fire duplicate OnInsert events for already-cached rows (#4903).

If you run into anything new with this release, file an issue on GitHub or drop into Discord and let us know.

What's Changed

New Contributors

Full Changelog: v2.1.0...v2.2.0

Don't miss a new SpacetimeDB release

NewReleases is sending notifications on new releases.