Releases: nookwright/nookdb
Releases · nookwright/nookdb
1.1.0
[1.1.0] - 2026-05-30
Added
- Query options (
sort/limit/offset) across all layers (#20).find,findOne, andcountnow accept an options object to sort by a schema field (nulls-last, with a stableidtie-break), cap results withlimit, and page withoffset. The options flow end to end: through the Rust core (find_with/find_one_with/count_with), the typednookdbAPI, and reactivelive()subscriptions, which carry the options through every recompute.
Install & verify
npm install nookdb@1.1.0Confirm 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
Fixed
nookdband@nookdb/cliwere uninstallable from npm.release.ymlusednpm publish, which does not rewrite pnpm'sworkspace:*protocol. The published 1.0.0 tarballs leaked"@nookdb/binding": "workspace:*"(innookdb) and"nookdb": "workspace:*"(in@nookdb/cli) as runtime dependencies, causingEUNSUPPORTEDPROTOCOLon install. Pipeline switched topnpm publishfor 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 noworkspace:references in their source manifests.
1.0.0
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, reactivelive()queries with post-commit notifier coalescing, transactions, backup/restore. - React bindings (
@nookdb/react):useLivehook with snapshot semantics. - Electron bridge (
@nookdb/electron): main↔renderer typed proxy over MessagePortMain, schema-hash handshake (NookSchemaErroron mismatch), pluggableAuthorizer(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).