Releases: clockworklabs/SpacetimeDB
v0.7.0-beta
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_connectandon_disconnectcallbacks in the Rust SDK - Multiple
spacetime serverconfigs 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 sameIdentitybut running on different devices.
What's Changed
- Separate the global location of files per OS & create a configuration trait to read them by @mamcx in #171
- Add SPACETIMEDB_TRACY var to dev environment by @joshua-spacetime in #200
- Fix ABI check for module with split data by @RReverser in #197
- Better Version Logging by @jdetter in #206
- Add
identity/:id/verifyroute to verify identity/token pairs by @gefjon in #155 - Fix
SpacetimeTypeforAddressby @kim in #209 - Remove the bitrotted trace replay functionality by @kulakowski in #219
- Provide serialization for
Resultby @kim in #210 - Fix Windows Build by @jdetter in #227
- Cloud related fixes by @drogus in #218
- Ensure legacy
DomainNamecan be deserialized from JSON by @kim in #208 - [rust-sdk]: gracefully close websocket by @coolreader18 in #228
- Remove unused RelationalDB::table_exist by @kulakowski in #236
- Fix logspam by @coolreader18 in #229
- Make ColumnIndexAttribute bitflags in the ABI by @RReverser in #212
- Update wasmer by @kulakowski in #220
- chore: add more tracing to vm by @joshua-spacetime in #246
- Fix reopening of db in test, keep the binary data on files stable by @mamcx in #190
- Create st_constraints system table by @mamcx in #225
- Add
/identity/public-keyroute to get ECDSA public key by @gefjon in #165 - Fix recovery of sequences after restart by @mamcx in #158
- test: Only update active toolchain by @kim in #223
- perf: compute DataKey only when necessary by @joshua-spacetime in #268
- Add debug logs with load progress by @aasoni in #143
- Fixed json serializer getting progressively slower by @SteveBoytsun in #226
- SDK test suites by @gefjon in #258
- perf: read DataKey instead of recomputing it in subscriptions by @joshua-spacetime in #276
- Update indexes when updating a database by @kim in #257
- perf: remove table headers from rows in query engine by @joshua-spacetime in #271
- Refactor with
#[derive(derive_more::From)]by @Centril in #281 - Add C# integration test by @RReverser in #291
- Refactor Option<Vec<_>> in Config by @RReverser in #292
- Avoid relying on global CLI in tests by @RReverser in #294
- feat(296): index range iterator by @joshua-spacetime in #303
- feat(311): Make right hand side of join generic by @joshua-spacetime in #312
- [SDK] Separate client cache from connection to avoid a deadlock in cloud-next by @gefjon in #248
- feat(297): generate index scans for range predicates by @joshua-spacetime in #306
- perf(308): Push index scans below join by @joshua-spacetime in #313
- fix(320): Incremental evaluation of index scan plans by @joshua-spacetime in #321
- feat(318): Push selections below joins in the general case by @joshua-spacetime in #319
- feat(298): Index nested loop semijoin by @joshua-spacetime in #316
- Add SDK test that verifies connect/disconnect callbacks happen by @gefjon in #326
- Add smoke test for private tables by @kim in #331
- Fix Describe Reducer + Table by @jdetter in #323
- Store the current module hash in a system table by @kim in #290
- feat(332): Support incremental evaluation for index joins by @joshua-spacetime in #336
- Return the formatted error from
log_and_500, so the CLI can report it by @gefjon in #338 - [SDK] generate
struct Moduleto hold dispatch functions by @gefjon in #239 - connect/disconnect reducers called when executing reducer from from CLI by @jdetter in #334
- Fix bootstrapping of ST_MODULE by @kim in #342
- Wrangle benchmarks by @kazimuth in #289
- Benchmarks: report tx/s as elements/s by @gefjon in #345
- Fix the printing of ascii codes on tracy and improve some tracing by @mamcx in #341
- Added Git Commit Hash to Version Command by @jdetter in #340
- Fix derive(Deserialize) on void enum by @coolreader18 in #330
- Add simple READMEs for SDK test clients by @gefjon in #350
- Preliminary module-side interface for timing execution by @gefjon in #351
- Commit test clients' module_bindings by @gefjon in #346
- Print the elapsed time & # of returned rows in the interactive repl by @mamcx in #344
- Fix typo in README.md by @eltociear in #193
- Bindings: improve docs precision by @Centril in #146
- New Upgrade Version Util by @jdetter in #354
- core: Provide read access to commit/message log and odb by @kim in #265
- Version Upgrade to 0.7.0 by @jdetter in #355
- Move connection events to reducers by @RReverser in #309
- Fix arm64 builds on Linux by @kurtismullins in https://github.com/clockworklabs/Spacetim...
v0.6.1-beta
This is the first patch release post-announcement! We're already at work fixing all the issues that you all have been reporting. There'll be much more to come over the next few weeks and months!
Highlights
- Fancy banner for
spacetime start - Logging fixes and improvements
- Bug fixes and performance improvements
What's Changed
- Print banner during spacetime start by @jdetter in #138
- In identity recovery routes, use
IdentityForUrlby @gefjon in #139 - Fix openssl bindings to always use the feature 'vendored' by @mamcx in #141
- Allow spacetimedb to run in an in-memory mode by @kulakowski in #137
- Remove sendgrid from standalone by @kulakowski in #142
- Build docker image in CI by @drogus in #124
- Tag docker images with git tag by @drogus in #145
- Fix up the standalone and CLI command line flags by @kulakowski in #148
- Improve the help docs for the --in-memory cli flag by @kulakowski in #150
- Auto-upgrade C# deps on installation by @RReverser in #147
- Fix URL for the docker badge by @mamcx in #144
- Move energy budget reporting to log::info! by @kulakowski in #140
- Default docker command by @jdetter in #149
- Fix serde impls for Address + add some tests by @kim in #159
- Implement
DisplayforNameOrAddressby @kim in #160 - Point C# to API reference for now by @RReverser in #164
- Remove unused datastore traits by @kulakowski in #157
- Terminate background smoke tests on exit by @kim in #153
- Allow smoke tests to opt out of docker by @kim in #154
- Return parsed
DomainNamealongsideAddresswhen resolvingNameOrAddressby @kim in #161 - More compact representation of
DomainNameby @kim in #163 - [SDK] Add cursive-chat example by @gefjon in #152
- Install from source instructions by @jdetter in #170
- sdk: Lower client cache log severities by @kim in #162
- Fix some insertion and deletion state transitions by @kulakowski in #167
- Move cargo deps to the workspace by @mamcx in #172
- Fix nit by @mamcx in #178
- Version upgrade to 0.6.1 by @jdetter in #180
- Fix python generation for C# server modules by @dbrinkmanncw in #166
- Fix Docker Build by @jdetter in #181
Full Changelog: v0.6.0-beta...v0.6.1-beta
v0.6.0-beta
The first publicly released version of SpacetimeDB. 0.6.0
v0.6.0-beta Release Notes