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.

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).

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.

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

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

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

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 modules can now be generic over DbContext, enabling code reuse between client and server contexts while maintaining type safety (#4707).

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

  • 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)

  • 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)

Full Changelog: https://github.com/clockworklabs/SpacetimeDB/compare/v2.2.0...v2.3.0