github clockworklabs/SpacetimeDB v2.3.0
Release v2.3.0

5 hours ago

This release brings first-party Godot support and major WebSocket performance improvements. We've also landed significant pipeline optimizations, commitlog enhancements, and expanded our framework coverage.

Features

First-party Godot SDK and Blackholio Tutorial

SpacetimeDB now officially supports Godot with a complete C# SDK integration. The new Blackholio tutorial walks through building a multiplayer asteroids-style game, demonstrating best practices for entity replication, player input handling, and game state management in Godot (#4920).

spacetime new --template godot-cs

Faster WebSocket Transport with Batched Responses

The WebSocket layer now pipelines and batches responses using the v3 protocol, significantly reducing per-message overhead under high load. Combined with pipelined JavaScript module operations (#4962), WASM module operations (#4973), and a fully pipelined WebSocket send path (#5051), this delivers substantially improved throughput for real-time applications.

HTTP/2 Backend Support

The SpacetimeDB server now supports HTTP/2, enabling more efficient client connections with multiplexed streams and header compression (#5027).

Vue useProcedure Hook

Following the React pattern, Vue developers now have a first-class useProcedure composable for calling SpacetimeDB procedures with full TypeScript support (#4999).

Unity 6 WebGL Compatibility

C# modules and clients now support Unity 6's WebGL runtime, automatically selecting between getWasmTableEntry and dynCall as appropriate for the Unity version (#4961).

Commitlog Performance and Operations

The durability layer gained several improvements:

  • Configurable commitlog compression knobs for operational tuning (#5074)
  • Compression deferred when under write load to prioritize throughput (#4974)
  • Non-blocking compression that doesn't hold locks (#4981)
  • Proper handling of empty tail segments on resumption (#4863)

Rust DbContext Generics

Rust modules can now be generic over DbContext, enabling code reuse between client and server contexts while maintaining type safety (#4707).

API Changes

  • Deprecated: ReducerContext::identity is deprecated in favor of database_identity to clarify that this represents the module's identity, not the caller's (#4843)

Bug Fixes

  • Fixed a segfault in the V8 JavaScript runtime that could crash the server (#4986)
  • Fixed connection lifecycle callbacks not firing correctly in all disconnection scenarios (#4935)
  • Fixed panics during unsubscribe operations (#4938)
  • Fixed view auto-migration when using canonical names (#4985)
  • Eliminated unnecessary msync calls on the entire offset index file, improving write performance (#5018)
  • Fixed directory fsync issues on Windows snapshots (#4939)
  • Fixed auth error details leaking in debug output (#5000)
  • Prepared statements are now properly rolled back on transaction failure (#4979)

Infrastructure

  • Client binaries are now distributed from AWS instead of DigitalOcean for improved reliability (#5077)
  • Internal: cargo ci dlls renamed to cargo regen csharp dlls (#4972)

What's Changed

New Contributors

Full Changelog: v2.2.0...v2.3.0

Don't miss a new SpacetimeDB release

NewReleases is sending notifications on new releases.