v1.3.0

clockworklabs/SpacetimeDBv1.3.0Aug 1, 2025by bfops

AI Summary

v1.3.0 allows adding new enum variants without clearing data, brings significant performance improvements, and introduces a V8 runtime skeleton for JavaScript support.

Key Highlights

  • Add new enum variants at the end without clearing database data
  • Performance improvements to CPU, memory, and network behavior
  • Fixed query blocking issues between similar queries
  • V8 runtime skeleton added

New Features

  • Enum variant extension
  • V8 runtime skeleton

Full Release Notes

We have a new release with a variety of goodies for you :gift:

As of this release, users can add new values at the end of an `enum` without clearing the database data.

This release also includes lots of performance improvements to CPU usage, memory usage, and network behavior.

We've also addressed several bugs that were reported, especially:
  * Fixed a bug where clients making similar queries could prevent each other from getting query updates
  * Fixed https://github.com/clockworklabs/SpacetimeDB/issues/2894
  * Fixed https://github.com/clockworklabs/SpacetimeDB/issues/2891
  * Fix `spacetime version list` not showing the current version

## What's Changed
* Fix an outdated docstring on `identity` and `try_identity` in the Rust SDK by @gefjon in https://github.com/clockworklabs/SpacetimeDB/pull/2871
* Remove incorrect `const` qualifiers on two imports in `bindings.c` by @gefjon in https://github.com/clockworklabs/SpacetimeDB/pull/2862
* Use database identity not owner identity for metrics by @joshua-spacetime in https://github.com/clockworklabs/SpacetimeDB/pull/2868
* `messages::serialize`: take/put buffers from/into a `SerializeBufferPool` by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/2823
* Relax conditions for query pruning by @joshua-spacetime in https://github.com/clockworklabs/SpacetimeDB/pull/2873
* Track metadata updates for unsubscribes by @joshua-spacetime in https://github.com/clockworklabs/SpacetimeDB/pull/2876
* Record the size of a client's outgoing message queue on drop by @joshua-spacetime in https://github.com/clockworklabs/SpacetimeDB/pull/2877
* Fix two places we grab blocking locks on tokio runtime worker threads by @jsdt in https://github.com/clockworklabs/SpacetimeDB/pull/2881
* Speed up metadata update on unsubscribe by @joshua-spacetime in https://github.com/clockworklabs/SpacetimeDB/pull/2880
* Log when a websocket connection has ended by @joshua-spacetime in https://github.com/clockworklabs/SpacetimeDB/pull/2883
* Improve serialization speed of enums without data in C# by @kazimuth in https://github.com/clockworklabs/SpacetimeDB/pull/2762
* `TypedIndex`: add special cases for `F{32,64}` by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/2885
* Bump C# versions to 1.2.1 by @bfops in https://github.com/clockworklabs/SpacetimeDB/pull/2890
* Remove unnecessary `.clone()` in `pipelined.rs` by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/2897
* Track disconnects initiated by the client by @joshua-spacetime in https://github.com/clockworklabs/SpacetimeDB/pull/2893
* Fix query overwrites in the subscription manager by @joshua-spacetime in https://github.com/clockworklabs/SpacetimeDB/pull/2905
* core: Allow adjusting CPU reservation pools by @kim in https://github.com/clockworklabs/SpacetimeDB/pull/2907
* durability: Fix task leak by @kim in https://github.com/clockworklabs/SpacetimeDB/pull/2875
* Auto-migrate: Allow adding new variants at the tail by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/2874
* (perf) `send_one_computed_queries`: reuse aggregation `HashMap`s by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/2909
* Filter out dropped clients in the send worker by @joshua-spacetime in https://github.com/clockworklabs/SpacetimeDB/pull/2899
* `tools/upgrade-version` updates the Change Date in `LICENSE.txt` by @bfops in https://github.com/clockworklabs/SpacetimeDB/pull/2895
* Wrap websocket flush in timeout by @joshua-spacetime in https://github.com/clockworklabs/SpacetimeDB/pull/2908
* Record transaction metrics off the main thread by @joshua-spacetime in https://github.com/clockworklabs/SpacetimeDB/pull/2910
* core: Allow caller to decide whether or not IRQ cores should be reserved by @kim in https://github.com/clockworklabs/SpacetimeDB/pull/2913
* Remove unused `get_column_by_field` by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/2917
* `update_database`: `is_unique` should only use the table's constraints by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/2915
* Extract `spacetimedb-memory-usage` & Nix `bindings` dep on `spacetimedb-data-structures` by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/2919
* Extract `object_pool` module from `PagePool` by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/2920
* SATS: Move some method bodies to be provided in 'Serializer' instead by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/2921
* Move `sats::de::serde::NoneAccess` to `sats::de::NoneAccess` by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/2922
* Fix equality comparison between Row::Ptr and Row::Ref by @jsdt in https://github.com/clockworklabs/SpacetimeDB/pull/2914
* SATS: make `field_names`/`variant_names` return iterator + add `FieldNameVisitor::visit_seq` by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/2927
* Add `V8Runtime` skeleton + `HostType::Js` by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/2923
* core: Tone down `MessageExecutionError` by @kim in https://github.com/clockworklabs/SpacetimeDB/pull/2926
* SATS: add `Impossible` helper type by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/2929
* client-api: Rewrite websocket loop by @kim in https://github.com/clockworklabs/SpacetimeDB/pull/2906
* Fix `AlgebraicTypeLayout::is_compatible_with` by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/2932
* Split datastore into its own crate by @cloutiertyler in https://github.com/clockworklabs/SpacetimeDB/pull/2933
* Enable the `datastore` crate's `test` feature where necessary by @gefjon in https://github.com/clockworklabs/SpacetimeDB/pull/2937
* Move locking operations onto the module's thread by @jsdt in https://github.com/clockworklabs/SpacetimeDB/pull/2866
* Bump rust-toolchain to rust 1.88 by @coolreader18 in https://github.com/clockworklabs/SpacetimeDB/pull/2749
* Add `v8` crate + initialize `v8` by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/2939
* Extract `ModuleCommon` + use in wasm & v8 runtimes by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/2940
* Import TypeScript SDK repo by @bfops in https://github.com/clockworklabs/SpacetimeDB/pull/2941
* Make websocket configurable via config.toml by @kim in https://github.com/clockworklabs/SpacetimeDB/pull/2944
* Fix up GitHub files related to TypeScript SDK by @bfops in https://github.com/clockworklabs/SpacetimeDB/pull/2943
* [V8] Define `trait ToValue` for primitive types by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/2946
* commitlog: Set up options for toml configuration by @kim in https://github.com/clockworklabs/SpacetimeDB/pull/2942
* Import docs repo by @bfops in https://github.com/clockworklabs/SpacetimeDB/pull/2948
* Docs import - Update GitHub-related files by @bfops in https://github.com/clockworklabs/SpacetimeDB/pull/2949
* Import Blackholio by @bfops in https://github.com/clockworklabs/SpacetimeDB/pull/2945
* Blackholio import - README updates by @bfops in https://github.com/clockworklabs/SpacetimeDB/pull/2947
* Import C#/Unity SDK by @bfops in https://github.com/clockworklabs/SpacetimeDB/pull/2951
* smoketest: Retry if there is no current leader by @kim in https://github.com/clockworklabs/SpacetimeDB/pull/2950
* Update GitHub files for C#/Unity SDK by @bfops in https://github.com/clockworklabs/SpacetimeDB/pull/2952
* ci: Temporarily disable zz_docker tests by @kim in https://github.com/clockworklabs/SpacetimeDB/pull/2974
* V8: add `FromValue`, error traits, roundtrip tests by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/2971
* smoketests: Adjust for node table rename by @kim in https://github.com/clockworklabs/SpacetimeDB/pull/2970
* smoketests: Fix server restarts and make more robust by @kim in https://github.com/clockworklabs/SpacetimeDB/pull/2977
* Fix `spacetime version list` not showing current version by @bfops in https://github.com/clockworklabs/SpacetimeDB/pull/2680
* Upgrade `jemalloc_pprof` and `tempfile` crates by @kim in https://github.com/clockworklabs/SpacetimeDB/pull/2982
* Update tungstenite to get client read performance improvement by @ResuBaka in https://github.com/clockworklabs/SpacetimeDB/pull/2966
* Moved Remove operation to start of Table.Apply by @rekhoff in https://github.com/clockworklabs/SpacetimeDB/pull/2967
* Update quickstart-chat client module bindings from server by @alex47 in https://github.com/clockworklabs/SpacetimeDB/pull/2976
* ci: Skip the Unity tests if the PR is an external contribution by @kim in https://github.com/clockworklabs/SpacetimeDB/pull/2978
* Docs CI - Check that `nav.js` matches the `.md` files list by @bfops in https://github.com/clockworklabs/SpacetimeDB/pull/2984
* CI - Check C# quickstart-chat bindings are up to date by @bfops in https://github.com/clockworklabs/SpacetimeDB/pull/2979
* Adding reject-client-connections doc. by @rekhoff in https://github.com/clockworklabs/SpacetimeDB/pull/2973
* cli: Close the websocket connection gracefully by @kim in https://github.com/clockworklabs/SpacetimeDB/pull/2925
* smoketests: Make gathering container ports None-safe by @kim in https://github.com/clockworklabs/SpacetimeDB/pull/2991
* Generate Websocket token from auth in Unity WebGL build by @FME849 in https://github.com/clockworklabs/SpacetimeDB/pull/2988
* `Snapshotdir` tx_offset method by @Shubham8287 in https://github.com/clockworklabs/SpacetimeDB/pull/2992
* Add a recursion limit to the evaluation of type_expr & parse_expr by @mamcx in https://github.com/clockworklabs/SpacetimeDB/pull/2935
* Update docs to point to SpacetimeDB monorepo by @bfops in https://github.com/clockworklabs/SpacetimeDB/pull/2989
* Add React Native support to the Typescript SDK by @JulienLavocat in https://github.com/clockworklabs/SpacetimeDB/pull/2955
* Bump C#/Unity Client SDK versions to 1.2.2 by @bfops in https://github.com/clockworklabs/SpacetimeDB/pull/2994
* TypeScript - Bump package version to 1.2.3 by @bfops in https://github.com/clockworklabs/SpacetimeDB/pull/2997
* CI - Monorepo tweaks by @bfops in https://github.com/clockworklabs/SpacetimeDB/pull/3000
* Add additional logging to subscribe route and simplify calling `client_connected` by @gefjon in https://github.com/clockworklabs/SpacetimeDB/pull/2998
* CI - C#/Unity test suite concurrency improvements by @bfops in https://github.com/clockworklabs/SpacetimeDB/pull/3001
* Bump versions to 1.3.0 by @bfops in https://github.com/clockworklabs/SpacetimeDB/pull/3005

## New Contributors
* @ResuBaka made their first contribution in https://github.com/clockworklabs/SpacetimeDB/pull/2966
* @alex47 made their first contribution in https://github.com/clockworklabs/SpacetimeDB/pull/2976
* @FME849 made their first contribution in https://github.com/clockworklabs/SpacetimeDB/pull/2988
* @JulienLavocat made their first contribution in https://github.com/clockworklabs/SpacetimeDB/pull/2955

**Full Changelog**: https://github.com/clockworklabs/SpacetimeDB/compare/v1.2.0...cli/v1.3.0