Repository navigation
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.0Built 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.