Skip to content

v0.4.0

Latest

Choose a tag to compare

@github-actions github-actions released this 27 Oct 11:19
· 8 commits to main since this release

TinyStore 0.4.0

What's new, with code in every language: https://tinyshed.org/tinystore/docs/releases/v0.4.0

bun add @tinyshed/tinystore@0.4.0
npm install @tinyshed/tinystore@0.4.0
pip install tinyshed-tinystore==0.4.0

Built for linux-x64, linux-arm64, linux-x64-musl, linux-arm64-musl, darwin-arm64, darwin-x64, win32-x64. Each archive holds the
tinystore executable in bin/, and in lib/ the core's library and the Node addon; the Go
SDK fetches its platform's at the first open. SHA256SUMS checks them all.

Changes since v0.3.0

Features

  • metrics: mark metrics.db with a step of its migrations once it may hold this release's blocks, so that a release before refuses the file at its open rather than read them as damage
  • sdk: open files in a database over the wire, in Bun, Node, Python and Go, their put, head, delete, copy and rename joining its transactions
  • blobs: open a set of files in a database's file, whose writes commit with its rows in db.tx and whose bytes a rollback or a crash leaves to no one
  • kv: open values with the store's older encryption keys, seal new ones beside those no key opens, and reseal a bucket with the key that seals
  • metrics: aggregate series a program holds in memory as a store's query would, and sum floats exactly with ExactSum
  • backup: copy every file of the store at one moment, so that a row naming what another file holds is restored with it

Fixes

  • write the errors of a value sealed with a key the store lacks and of a files call a transaction refuses as one sentence each
  • kv: reseal a batch of values no larger than 8 MiB, so that values of a mebibyte each never fill one commit
  • backup: open the store's gate while a backup waits long for a writer, so that a transaction waiting for another thread's commit ends instead of the store's writes
  • backup: build every engine alone again, sql's files named through to_copy and Copying read whole by its Debug

Performance

  • metrics: hold up to 320 samples a block, so that a series of a sample a second packs a block every five minutes rather than every minute, a quarter less of metrics.db for pings a second
  • metrics: pack a run's integers as rice codes where they are shorter than Simple8b words, an eighth less of a round trip's values
  • metrics: keep a block's steps as their distance from its median step and write a group no merge takes in after every row, a third less of metrics.db for pings a second

Full history: v0.3.0...v0.4.0.