TanStack DB 0.6 macht den Client zur lokalen Datenbank

TanStack DB 0.6 macht den Client zur lokalen Datenbank

lschvn

TanStack DB, die transaktionale Client-seitige Datenbank vom Team hinter React Query und Router, hat letzte Woche Version 0.6 veröffentlicht. Die Hauptfunktionen, SQLite-Persistenz, hierarchische Datenprojektionen und reaktive Agent-Workflows, sind keine inkrementellen Ergänzungen. Es sind die fehlenden Teile, die das gesamte System für echte Anwendungen praktisch machen.

Das fehlende Teil: Persistenz

TanStack DB hatte bereits eine ausgefeilte Query-Engine, granulare Reaktivität, optimistische Updates und eine Offline-Transaktions-API. Was ihr fehlte, war Dauerhaftigkeit, die Fähigkeit, Daten auch nach dem Schließen der App zu behalten.

Das ändert sich mit 0.6. Die Persistenzschicht basiert auf SQLite und funktioniert über eine breite Palette von Runtimes: Browser (via SQLite WASM), React Native, Expo, Node, Electron, Tauri, Capacitor und Cloudflare Durable Objects.

Die wichtige Designentscheidung ist pragmatisch: Anstatt eine neue Speicherabstraktion zu erfinden, dient SQLite als Persistenz-Backend. Das bedeutet, TanStack DB bekommt große Datensatzbehandlung, Multi-Tab-Support, Schema-Evolution und Cross-Runtime-Kompatibilität geschenkt. Sobald lokaler Zustand dauerhaft ist, kann der gesamte Stack, Query-Engine, optimistische Updates, Offline-Transaktionen, als vollständig local-first-System funktionieren, statt nur während die App offen ist lokal zu wirken.

PowerSync und Trailbase unterstützen bereits inkrementelle Sync mit dieser neuen Persistenzschicht, aufbauend auf dem Query-Collections-Sync-Modell, das in v0.5 eingeführt wurde.

Includes: Hierarchische Daten ohne GraphQL

Die includes-Funktion löst ein Problem, das in der UI-Entwicklung ständig auftritt: Eure Daten sind in der Datenbank normalisiert, aber eure UI-Komponenten erwarten eine verschachtelte Form.

Die klassische Lösung ist GraphQL, mit Resolvern und einer separaten Infrastrukturschicht. TanStack DBs includes projiziert normalisierte Daten in die hierarchische Struktur, die eure UI braucht, dasselbe Ergebnis, ohne zusätzliches Backend.

createEffect: Reaktive Nebenwirkungen für Agents

Eine neue createEffect-Funktion ermöglicht es, reaktive Nebenwirkungen direkt von Live-Queries auszulösen. Dies richtet sich an Agent-ähnliche Automatisierungs-Workflows, bei denen ihr programmatisch auf Datenänderungen reagieren müsst, sie nicht nur rendern.

Virtual Props ($synced, $origin) ergänzen dies, indem sie Metadaten auf Zeilenebene verfolgen, Outbox-Ansichten, Sync-Status und Datenherkunft werden zu Fragen der ersten Klasse in Queries.

queryOnce und andere Ergonomie

queryOnce bietet einmalige Queries mit derselben Abfragesprache wie Live-Queries. Zuvor wichen die beiden Modelle voneinander ab; jetzt sind sie vereinheitlicht.

Indizes sind jetzt optional, und Mutations-Handler verlassen sich nicht mehr auf implizites Rückgabeverhalten. Beides sind Breaking Changes beim Upgrade, aber sie machen die API vorhersehbarer.

Richtung v1

Das Team sucht SSR-Designpartner (Server-Side Rendering), während sie auf v1 hinarbeiten. Wenn ihr TanStack DB beobachtet und darauf gewartet habt, dass es produktionsreif wird, ist dieses Release das stärkste Signal, dass die Teile zusammenkommen.

tldr

  • TanStack DB 0.6 fügt SQLite-Persistenz über Browser, React Native, Node, Electron, Tauri und mehr hinzu, macht Local-First-Apps tatsächlich dauerhaft
  • Die neue includes-API projiziert normalisierte Daten in hierarchische UI-Formen, ohne eine GraphQL-Schicht zu erfordern
  • createEffect und Virtual Props ($synced, $origin) ermöglichen reaktive Agent-Workflows und Outbox-ähnliche Sync-UI-Patterns

faq

  • Ist das produktionsreif? Es ist noch vor v1, aber das Feature-Set und die Unterstützung durch TanStack (React-Query-Maintainer) machen eine Evaluierung für nicht-kritische Apps jetzt schon sinnvoll.
  • Wie vergleicht es sich mit Dexie.js oder WatermelonDB? TanStack DB ist Query-Engine-first mit granularer Reaktivität und eingebautem Sync-Modell; Dexie ist mehr auf IndexedDB-Ergonomie ausgerichtet und WatermelonDB eher ORM-orientiert.
  • Funktioniert das mit SSR? Das Team arbeitet aktiv an SSR-Support und sucht Designpartner.

Verwandte Artikel

Weitere Berichterstattung zu ähnlichen Themen und Tags.

React Router v8 stuft seine Future Flags zu Standardwerten hoch, wird rein ESM und legt `react-router-dom` ab
frameworks

React Router v8 stuft seine Future Flags zu Standardwerten hoch, wird rein ESM und legt `react-router-dom` ab

React Router v8.0.0 (17. Juni 2026) ist das erste Major Release unter dem Open-Governance-Modell des Projekts und das erste in einem geplanten Jahresrhythmus. Jedes `future.v8_*`-Flag aus v7 wird zum Standard (immer aktiviertes Middleware, Pass-Through-Requests, die Vite-Environment-API, Route-Modul-Splitting), die Baseline steigt auf Node 22.22+, React 19.2.7+ und Vite 7+, alle Pakete erscheinen rein als ESM mit ES2022 als Ziel, `react-router-dom` wird entfernt und die Node-Adapter wechseln zu einem von Remix gepflegten Fetch-Server, während `create-react-router` seinen Fetch-Polyfill durch nativen `fetch` ersetzt.
Nitro v3.0.260603-beta: Custom Framework Commands und defaultPreset-Config
frameworks

Nitro v3.0.260603-beta: Custom Framework Commands und defaultPreset-Config

Der neueste Nitro-Beta fügt Support für benutzerdefinierte Framework-Preview- und Deploy-Befehle hinzu, führt die defaultPreset-Config-Option ein und behebt einen Edge-Case beim Type-Stripping.
Nitro v3.0.260522-beta: Build-Time Tracing-Wrapper, VFS-Performance-Boost, Vercel Queues Lokal
frameworks

Nitro v3.0.260522-beta: Build-Time Tracing-Wrapper, VFS-Performance-Boost, Vercel Queues Lokal

Das Nitro v3 Beta vom 22. Mai bringt automatische Tracing-Span-Wrapper für Route-Handler zur Build-Zeit, einen VFS-Cache für dynamischen Nitro-App-Code und Vercel-Queue-Support im lokalen Development, zusammen mit den Sicherheitspatches der vorherigen Beta.

Kommentare

Anmelden Melden Sie sich an, um an der Diskussion teilzunehmen.

Noch keine Kommentare. Seien Sie der Erste, der seine Gedanken teilt.