Skip to content

Releases: nookwright/nookdb

1.1.0

30 May 00:26
c92a59a

Choose a tag to compare

[1.1.0] - 2026-05-30

Added

  • Query options (sort / limit / offset) across all layers (#20). find, findOne, and count now accept an options object to sort by a schema field (nulls-last, with a stable id tie-break), cap results with limit, and page with offset. The options flow end to end: through the Rust core (find_with / find_one_with / count_with), the typed nookdb API, and reactive live() subscriptions, which carry the options through every recompute.

Install & verify

npm install nookdb@1.1.0

Confirm the install resolved a native binding and the core round-trips:

node -e "const { open, s } = require('nookdb'); (async () => { const db = await open(require('path').join(require('os').tmpdir(), 'smoke-' + Date.now() + '.db'), { schema: { items: s.collection({ id: s.id(), v: s.number() }) } }); await db.items.insert({ id: 'a', v: 1 }); const all = await db.items.find({}); if (all.length !== 1) process.exit(1); db.close(); console.log('OK'); })().catch(e => { console.error(e); process.exit(1); });"

Prints OK on success. This is the same smoke check the CI install matrix runs across Linux/macOS/Windows on Node 20/22/24.

1.0.1

25 May 01:31
8e89660

Choose a tag to compare

Fixed

  • nookdb and @nookdb/cli were uninstallable from npm. release.yml used npm publish, which does not rewrite pnpm's workspace:* protocol. The published 1.0.0 tarballs leaked "@nookdb/binding": "workspace:*" (in nookdb) and "nookdb": "workspace:*" (in @nookdb/cli) as runtime dependencies, causing EUNSUPPORTEDPROTOCOL on install. Pipeline switched to pnpm publish for the 5 main JS packages, which transforms workspace specifiers to the actual version at publish time.
  • nookdb-core (crate), @nookdb/binding (dispatcher), and the 6 per-triple binding siblings were unaffected — they have no workspace: references in their source manifests.

1.0.0

25 May 00:13
2285f14

Choose a tag to compare

First stable release.

Added

  • Storage core (nookdb-core): redb-backed ACID storage with composite-key codec, transactions, fsync-aware durability, kill-9 crash safety.
  • NAPI binding (@nookdb/binding): NAPI-rs v3 binding with multi-process safe transaction primitives; per-platform packages for Linux x64/arm64 (gnu+musl), macOS x64/arm64, Windows x64-msvc.
  • Core API (nookdb): schema-first DSL (s.*), typed queries (find, findOne, count, delete, insert), secondary indexes, unique indexes, reactive live() queries with post-commit notifier coalescing, transactions, backup/restore.
  • React bindings (@nookdb/react): useLive hook with snapshot semantics.
  • Electron bridge (@nookdb/electron): main↔renderer typed proxy over MessagePortMain, schema-hash handshake (NookSchemaError on mismatch), pluggable Authorizer (default permissive).
  • CLI (@nookdb/cli): nookdb backup, restore, migrate status|up, inspect.
  • Docs site: Astro/Starlight at https://nookdb.pages.dev.
  • Examples: electron-todo, electron-notes, migrate-from-sehawq-v5.
  • Benchmarks: head-to-head harness vs better-sqlite3.

Semver guarantees

  • Public API surface (nookdb, @nookdb/react, @nookdb/electron, @nookdb/cli) follows semver from this release forward. Breaking changes require a major bump.
  • Node 20+ supported. Node 18 explicitly not supported.
  • Electron 28+ supported (MessagePortMain modern API requirement).