Skip to content

Releases: clockworklabs/SpacetimeDB

v0.9.2-beta

28 May 20:49
Compare
Choose a tag to compare

Yes, we just released 0.9.1 🎉, but we just love releasing the latest and greatest things to the community!

And in this case, the latest and greatest thing is an 🔒 important security patchfix! Private tables are now properly protected.

Thank you to 📣 @Chippy in our Discord server for pointing this out so we were able to fix it quickly!

Changelog

22dd786 Apply open PR #1224: Bump version to 0.9.2
e4f1021 Apply open PR #1274: execution_set.check_auth(...) on initial subscription

Full Changelog: v0.9.1-beta...v0.9.2-beta

v0.9.1-beta

22 May 22:34
Compare
Choose a tag to compare

v0.9.1

Today's a good day - we have a new release for you! It's not the fanciest, shiniest release - but it includes some nice cleanups and important fixes.

As a reminder you can upgrade from the previous release with the spacetime upgrade command.
If you are on macOS and you've installed through brew we recommend using brew install clockworklabs/tap/spacetime to upgrade.

Highlights

🗑️ Removed repeating reducers

⚠️ We have removed repeating reducers (#[spacetimedb(reducer, repeat = _)]) in favor of just using schedule!.

There are a lot of nuances to what exactly "repeating" means. It's easier for everyone to understand code that schedules what it wants, when it wants.

💻 CLI updates

⚠️ The default server is now testnet instead of local!

The meaning of -s and -S are more consistent between CLI commands (-s is for --server, -S is for --skip_clippy). spacetime build, spacetime identity, and spacetime server have been tweaked.

🛠️ Bugfixes

  • Fix select * from *
  • Atomically downgrade lock when committing tx to prevent deadlock
  • fix(1170): Use scope guard to decrement reducer queue length
  • fix(1173): Record wait time for all reducers

Changelog

New Contributors

Full Changelog: v0.9.0-beta...v0.9.1-beta

v0.9.0-beta

03 May 15:10
Compare
Choose a tag to compare

v0.9 🚀🚀🚀

We have got a big one for you! Today we are releasing version 0.9 of SpacetimeDB. It's been a while since our last official release and we have got a huge number changes and performance improvements.

Most notably performance has improved by 10x - 100x or more for certain parts of the database! Subscription evaluation in particular has gotten almost 100 times faster! This makes an enormous difference for people shipping production games. 🏃🏃🏃

Version 0.9 is the same version that we ran the Closed Alpha for the MMOPRG BitCraft, which had 700 players playing concurrently in a single database! We are battle testing SpacetimeDB with our production game!

We're so excited to see what people build with this new version!

As a reminder you can upgrade from the previous release with the spacetime upgrade command. If you are on macOS and you've installed through brew we recommend using brew install clockworklabs/tap/spacetime to upgrade.

Highlights

  • Vastly improved metrics gathering performance overhead
  • Stabilized new transaction log format for a 2-3x reduction in transaction log size and much faster reply times
  • Reduced unnecessary copying and cloning in core database paths
  • Improved threading model for optimal performance
  • Fixed a critical issue for misbehaving clients or clients with very poor latency
  • Multi-column index selection for the query! macro
  • Huge number of critical performance and bug fixes!

What's Changed

Read more

v0.8.2-beta

15 Feb 20:48
Compare
Choose a tag to compare

Our release 0.8.2 is available now! It includes tons of performance improvements and some great bugfixes!

As a reminder you can upgrade from the previous release with the spacetime upgrade command. If you are on macOS and you've installed through brew we recommend using brew install clockworklabs/tap/spacetime to upgrade.

Highlights

  • Memory architecture refactor: we're working on rearchitecting the way we store and retrieve data from the database. This is our first batch of improvements which reduces the amount of overhead when reading values from the database. This affects both subscription query performance and module performance.
  • Tons of performance improvements
    • Incremental subscription queries are now evaluated in parallel
    • Join evaluation performance improvements
    • Lookups on an indexed column are faster
  • Fixed spacetime generate --delete-files works properly without using --force
  • Bug fixes
    • Fixed correctness issues with subscription queries
    • Fixed some issues related to unwrapping on None

What's Changed

Full Changelog: v0.8.1-beta...v0.8.2-beta-hotfix7

v0.8.1-beta

19 Jan 16:00
Compare
Choose a tag to compare

Our release 0.8.1 is available now! This minor release is the first release of the year for us and we're excited to show you all what we've been working on recently 🎉

As a reminder you can upgrade from the previous release with the spacetime upgrade command. If you are on macOS and you've installed through brew we recommend using brew install clockworklabs/tap/spacetime to upgrade.

Highlights

  • Remote server URL is printed during spacetime publish
  • Testnet has been added to the default spacetime CLI config
  • spacetime local clear allows you to clear your local database without deleting the entire ~/.spacetime/ directory
  • spacetime generate --delete-files ... will also delete any files generated by SpacetimeDB that are no longer needed
  • Output directory used by spacetime generate creates the directory if it doesn't already exist
  • Subscription query performance optimizations
  • spacetime logs ... now prints to stdout instead of stderr

What's Changed

Full Changelog: v0.8.0-beta...v0.8.1-beta

v0.8.0-beta

09 Dec 04:09
3061cee
Compare
Choose a tag to compare

We're here with the next big release for SpacetimeDB, v0.8.0! 🚀🚀🚀

We've merged in more than 70 new PRs since v0.7.3 and we're super excited to share all the new stuff!

As a reminder you can upgrade from v0.7.3 with the spacetime upgrade command. Please note that our ABI has changed with this release and you will therefore need to rebuild your modules.

Highlights

The most impactful changes in this release are:

  • New performance metrics tracking for your modules on the Testnet!
  • Stability and correctness improvements to the persistent storage.
  • Multi-column index support
  • Switched to Wasmtime execution engine
  • Significant performance improvements

Currently much of our effort is focused around improving performance and stability with the goal of launching the Mainnet in April of next year!

What's Changed

New Contributors

Full Changelog: v0.7.3-beta-hotfix1...v0.8.0-beta

v0.7.3-beta

09 Nov 00:21
Compare
Choose a tag to compare

v0.7.3 Patch Release

Hello everyone! Today we're happy to announce another patch release. This release focuses on some quality of life fixes and performance improvements. This is another stepping stone on our way to our much larger patch coming later this month.

If you have version v0.7.2, this upgrade is as simple as:

spacetime upgrade

Or if you've installed through brew on macOS we recommend upgrading via:

brew install clockworklabs/tap/spacetime

Thanks for checking it out!

What's Changed

  • Expose delete_by_rel in #515
  • Add OptIn serialization attribute for C# generated types in #516
  • Fix benchmarks run on master in #487
  • fix(518): Label connected clients metric by database in #523
  • refactor(520): Change histogram units from nanos to fractional secs in #520
  • Refactor commit encoding / decoding in #495
  • lib: Provide Arbitrary impls for Hash and DataKey
  • perf(505): Track the number of rows in each table in #525
  • refactor(531): Label transaction count metric with boolean flag in #532
  • perf(507): Add disk and memory usage metrics in #529
  • Added multi column index usage to the rust-wasm-test module in #500
  • Cherry Pick for Publish Primitives Fixes in #514
  • Track instance_queue_length by reducer in #530
  • Version upgrade to v0.7.3
  • Builds CLIs on release/* branches
  • Downgrade a log line from info to debug in #540
  • InstanceEnv::delete_by_col_eq: return u32 instead of NonZeroU32 in #539

Full Changelog: v0.7.2-beta...v0.7.3-beta-hotfix1

v0.7.2-beta

01 Nov 00:38
Compare
Choose a tag to compare

v0.7.2 - SpacetimeDB Spooky Release! 🎃👻👻🪦👻🪦👻👻🎃

We wanted to do a spooky Halloween release for you all with some tasty 🍬 treats 🍫 including the new spacetime upgrade command!

Check out out the other cool updates as well below! Hope you all have a happy Halloween and eat lots of candy!

What's Changed

Full Changelog: v0.7.1-beta-hotfix1...v0.7.2-beta

v0.7.1-beta

19 Oct 16:55
Compare
Choose a tag to compare

We've got another update for you all! This is a quick follow up to our past release we substantially improves performance by moving closer towards our planned memory architecture overhaul.

The main highlights are below!

Highlights

  • 5x performance improvements in certain cases while iterating from inside your module
  • Improved performance tracking
  • General bug fixes and performance improvements

What's Changed

Full Changelog: v0.7.0-beta...v0.7.1-beta-hotfix1

v0.7.0-beta

12 Oct 16:53
eb621fd
Compare
Choose a tag to compare

We've been hard at work stabilizing and improving SpacetimeDB since our announcement of the product two months ago! And we sure have a mondo update for you all! In just two months we've done hundreds of bug fixes and performance improvements. We've even gotten some contributions from the community!

We've got some highlighted features below, but the complete PR listing in the "What's Changed" section was too long so I've cut it down some!

Highlights

  • Multi-column indexes!
  • Much better CLI version tracking so we can identify the exact binary someone is using if they run into an issue
  • Implemented a more intelligent and performant system for disk fsyncs for 2x faster transactions
  • Greatly improved error and database event reporting in module logs
 INFO: spacetimedb: Creating table `ResourcesLog`
 INFO: spacetimedb: Creating table `Tool`
 INFO: spacetimedb: Creating table `Food`
 INFO: spacetimedb: Invoking `init` reducer
 INFO: src/lib.rs:69: Initialized bitcraft spacetimedb.
 INFO: spacetimedb: Database initialized
  • Implemented on_connect and on_disconnect callbacks in the Rust SDK
  • Multiple spacetime server configs for connecting to different servers 👍
 DEFAULT  HOSTNAME                 PROTOCOL  NICKNAME
          testnet.spacetimedb.com  https     testnet
     ***  localhost:3000           http      local
  • Completely reworked the multithreading model to reduce memory usage with a large amount of modules on a single node
  • Subscribe to all tables functionality!
SELECT * FROM *
  • Initializing and updating a database is now done in a single transaction, eliminating a whole class of issues
  • Added non-subscription based type safe querying support!
  • Implemented index scans for the SQL execution engine for greatly improved query performance
  • Bootstrapped the Control DB into a SpacetimeDB database in SpacetimeDB Cloud!
  • Positional arguments on the CLI! No more messing around with JSON for simple reducer calls!
$ spacetime call my_database my_reducer "Foo" "Bar" 27
  • Added the concept of SpacetimeDB Addresses which are now passed in with every reducer call. These allow you to disambiguate between clients with the same Identity but running on different devices.

What's Changed

Read more