v1.1.0

clockworklabs/SpacetimeDBv1.1.0Apr 16, 2025by bfops

AI Summary

The first major version bump since 1.0, introducing public Row-level Security (RLS), improved timestamp arithmetic, and streaming support for the commitlog.

Key Highlights

  • Public access for Row-level Security (RLS)
  • Improved timestamp and duration arithmetic operators
  • Support for enums as index keys
  • Streaming commitlog support

New Features

  • Row-level Security (RLS)
  • Time arithmetic operators
  • Streaming commitlog
  • Enum index keys

Full Release Notes

We're releasing our first version bump since 1.0! :tada:

## Row-level security
This release includes public access for row-level security.

See https://spacetimedb.com/docs/rls for more info on how to use it!

## Improved usability for timestamps and durations
From the PR https://github.com/clockworklabs/SpacetimeDB/pull/2502:
> Specifically, we add methods and trait impls for `T x U -> V`, where `x` is a binary operator, either + or -:
> 
> - `Timestamp x TimeDuration -> Timestamp`
> - `Timestamp x Duration -> Timestamp`.
>   - This one is kind of weird, since we convert the `Duration` into a `TimeDuration` before doing math with it, which may be a lossy conversion depending on platform.
> - `TimeDuration x TimeDuration -> TimeDuration`.

## Other notable improvements
- Features to save disk space and reduce memory usage
- Support for enums as index keys
- Restore CLI functionality for printing the number of rows affected by an operation

## What's Changed
* Use jemalloc in standalone and add stats. by @jsdt in https://github.com/clockworklabs/SpacetimeDB/pull/2470
* Add sql support for `:sender` parameter  by @joshua-spacetime in https://github.com/clockworklabs/SpacetimeDB/pull/2483
* commitlog: Streaming by @kim in https://github.com/clockworklabs/SpacetimeDB/pull/2492
* smoketests: Adjust clear_database test by @kim in https://github.com/clockworklabs/SpacetimeDB/pull/2501
* Remove trailing slashes from isser when looking up oidc configs. by @jsdt in https://github.com/clockworklabs/SpacetimeDB/pull/2499
* Add .cargo/config.toml to spacetime init Rust project with default target to wasm by @mamcx in https://github.com/clockworklabs/SpacetimeDB/pull/2328
* Bump versions to 1.1.0 by @bfops in https://github.com/clockworklabs/SpacetimeDB/pull/2518
* Install tls dependencies in standalone dockerfile by @coolreader18 in https://github.com/clockworklabs/SpacetimeDB/pull/2484
* CI - Containerize linux x86_64 GNU builds by @bfops in https://github.com/clockworklabs/SpacetimeDB/pull/2466
* Print back the # of rows affected (ins, upd, del) with timings by @mamcx in https://github.com/clockworklabs/SpacetimeDB/pull/2462
* Add [ClientVisibilityFilter] to csharp module library by @kazimuth in https://github.com/clockworklabs/SpacetimeDB/pull/2481
* CI - Make Test Suite check for dirty `git diff` by @bfops in https://github.com/clockworklabs/SpacetimeDB/pull/2531
* commitlog: Open stream writer with metadata by @kim in https://github.com/clockworklabs/SpacetimeDB/pull/2530
* Add endpoints for heap profiling by @jsdt in https://github.com/clockworklabs/SpacetimeDB/pull/2517
* Update data size metrics periodically, not on every transaction. by @jsdt in https://github.com/clockworklabs/SpacetimeDB/pull/2532
* Fix C# SDK Tests by @kazimuth in https://github.com/clockworklabs/SpacetimeDB/pull/2533
* Commitlog compression by @coolreader18 in https://github.com/clockworklabs/SpacetimeDB/pull/2504
* Add utility for rls resolution by @joshua-spacetime in https://github.com/clockworklabs/SpacetimeDB/pull/2519
* Feature gate #[client_visibility_filter] by @joshua-spacetime in https://github.com/clockworklabs/SpacetimeDB/pull/2528
* Followup to #2504 by @coolreader18 in https://github.com/clockworklabs/SpacetimeDB/pull/2534
* Repair transactionality of `st_client` removals after disconnect by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/2446
* Update PR template by @coolreader18 in https://github.com/clockworklabs/SpacetimeDB/pull/2395
* commitlog: Derive serde for `Commit` by @kim in https://github.com/clockworklabs/SpacetimeDB/pull/2535
* core: Export the snapshot watcher / commitlog compressor by @kim in https://github.com/clockworklabs/SpacetimeDB/pull/2536
* Update formatting of timestamps and identities in PsqlFormatter by @mamcx in https://github.com/clockworklabs/SpacetimeDB/pull/2486
* Add rls to the sql api by @joshua-spacetime in https://github.com/clockworklabs/SpacetimeDB/pull/2526
* Update tungstenite to 0.26 by @coolreader18 in https://github.com/clockworklabs/SpacetimeDB/pull/2539
* Static feature flag for generating perfmaps by @gefjon in https://github.com/clockworklabs/SpacetimeDB/pull/746
* Add some tokio runtime metrics. by @jsdt in https://github.com/clockworklabs/SpacetimeDB/pull/2537
* Add CI job to run `cargo doc` on the bindings crate by @gefjon in https://github.com/clockworklabs/SpacetimeDB/pull/2548
* Various methods and trait impls for time arithmetic by @gefjon in https://github.com/clockworklabs/SpacetimeDB/pull/2502
* Remove standalone energy monitor. by @jsdt in https://github.com/clockworklabs/SpacetimeDB/pull/2550
* Remove some testing logs statements. by @jsdt in https://github.com/clockworklabs/SpacetimeDB/pull/2553
* Add rls to the subscription api by @joshua-spacetime in https://github.com/clockworklabs/SpacetimeDB/pull/2546
* Add more subscription stats by @jsdt in https://github.com/clockworklabs/SpacetimeDB/pull/2560
* Do not send empty subscription updates to clients by @joshua-spacetime in https://github.com/clockworklabs/SpacetimeDB/pull/2562
* snapshot: Remote synchronization by @kim in https://github.com/clockworklabs/SpacetimeDB/pull/2559
* Add stats for incremental query evaluation hitrate by @jsdt in https://github.com/clockworklabs/SpacetimeDB/pull/2564
* Add integration test for commitlog compression by @coolreader18 in https://github.com/clockworklabs/SpacetimeDB/pull/2538
* Feature gate [ClientVisibilityFilter] in C# by @joshua-spacetime in https://github.com/clockworklabs/SpacetimeDB/pull/2556
* Compute variable positions for explicit projections by @joshua-spacetime in https://github.com/clockworklabs/SpacetimeDB/pull/2573
* Add tests asserting add_multi_subscription return errors to clients by @joshua-spacetime in https://github.com/clockworklabs/SpacetimeDB/pull/2571
* Return error for unqualified columns instead of panic by @joshua-spacetime in https://github.com/clockworklabs/SpacetimeDB/pull/2572
* Add some more tokio metrics. by @jsdt in https://github.com/clockworklabs/SpacetimeDB/pull/2555
* Plain enums as index keys with specialized indices by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/2506
* Use Offset Index on Meta extract by @Shubham8287 in https://github.com/clockworklabs/SpacetimeDB/pull/2549
* Remove spacetimedb-core as a dep of cli by @coolreader18 in https://github.com/clockworklabs/SpacetimeDB/pull/2244
* fix expression canonicalization by @joshua-spacetime in https://github.com/clockworklabs/SpacetimeDB/pull/2584
* Remove unused file by @bfops in https://github.com/clockworklabs/SpacetimeDB/pull/2582
* Compress the snapshot by @mamcx in https://github.com/clockworklabs/SpacetimeDB/pull/2034
* Impose limits on the heap usage of `ChunkPool` by @gefjon in https://github.com/clockworklabs/SpacetimeDB/pull/2585
* Update rand by @coolreader18 in https://github.com/clockworklabs/SpacetimeDB/pull/2568
* Make clockworklabs/spacetime docker image build from source by @coolreader18 in https://github.com/clockworklabs/SpacetimeDB/pull/2521
* Check validity of modules before control DB modifications during initial publish by @gefjon in https://github.com/clockworklabs/SpacetimeDB/pull/2580
* Bump a missed version by @bfops in https://github.com/clockworklabs/SpacetimeDB/pull/2607
* Add docs for `FilterableValue` to rust bindings crate by @gefjon in https://github.com/clockworklabs/SpacetimeDB/pull/2547


**Full Changelog**: https://github.com/clockworklabs/SpacetimeDB/compare/v1.0.1...v1.1.0