Release notes — @tanstack/db parity
Version: v0.1.1
Compatibility: 294/294 exports ✅
Summary
This release positions ArrowBase as a columnar Arrow store with an
@tanstack/db-compatible API. The public surface has been reviewed against
@tanstack/db@0.6.16, the compatibility catalog is all green, and migration docs
now show side-by-side replacements for common TanStack DB usage.
Highlights
- Publishes six verified ESM entry points with TypeScript declarations and npm
provenance:arrowbase,tanstack,react,arrow,idb, andbroadcast. - Ships the 294/294 compatibility catalog against
@tanstack/db@0.6.16, plus
exact public-export, operator-manifest, differential, and golden tests. - Adds columnar incremental live-query backends, spatial indexes, GeoArrow IPC,
optimistic transactions, persistence, and cross-tab synchronization. - Hosts the correctness-gated City Ops playground on GitHub Pages, with desktop
and mobile end-to-end coverage. - Keeps the published tarball focused on runtime output and consumer docs.
Migration
Most callers can start by changing imports from @tanstack/db to arrowbase.
Collection construction also needs an ArrowBase schema and explicit capacity so
rows can be stored in fixed column buffers. See MIGRATING.md
for side-by-side snippets and pitfalls.
Documented tolerances:
- BigInt/Number join keys normalize only in the safe integer range.
- Floating-point aggregate comparisons should use numeric tolerance.
- ArrowBase is fixed-capacity; choose capacity headroom per collection.
Benchmarks
Run:
pnpm bench
pnpm bench:vs-tanstackpnpm bench remains the regression guard for ArrowBase hot paths.
pnpm bench:vs-tanstack compares aggregate scan throughput and best-effort
memory footprint against the installed @tanstack/db reference. Latest local
validation measured aggregate scan at 39.084ms for @tanstack/db vs 15.343ms
for ArrowBase, with ArrowBase at 0.15× the measured memory footprint.
Validation checklist
Before tagging:
pnpm release:verify
pnpm check
pnpm playground:check
pnpm playground:e2e
pnpm build
pnpm verify:package-exportsIf any gate fails, do not tag. Fix the gap, regenerate COMPATIBILITY.md if the
surface changed, then rerun the full ritual.