Vai al contenuto

Un archivio dati reattivo e un motore di sincronizzazione piccoli e senza dipendenze per applicazioni JavaScript. Offre sottoscrizioni granulari, così le UI vengono nuovamente renderizzate solo quando cambiano i dati pertinenti, mantenendo le app veloci e prevedibili.

I dati possono essere modellati come semplici coppie chiave-valore o come strutture tabellari con righe e celle. Le funzionalità integrate includono schemi con valori predefiniti e inferenza dei tipi, indici per ricerche rapide, metriche per aggregazioni, relazioni tra tabelle, un sistema di checkpoint per annullare e ripristinare le modifiche e un motore di query simile a SQL (TinyQL) per selezionare, unire, filtrare e raggruppare i dati in modo reattivo.

Progettato per flussi di lavoro local-first e offline-first, offre supporto nativo per CRDT tramite MergeableStore, per sincronizzare e unire i dati in modo deterministico tra client e server. La persistenza è disponibile nell’archiviazione del browser e in IndexedDB, oltre che in database come SQLite e PostgreSQL, con integrazioni per Yjs e Automerge.

I binding React opzionali includono hook e componenti UI leggeri per creare interfacce completamente reattive, oltre a un Inspector integrato nell’app per visualizzare e modificare i dati dell’archivio in tempo reale durante lo sviluppo. Nonostante l’ampia gamma di funzionalità, il nucleo resta leggero (circa 5.3kB–11.7kB gzipped), documentato in modo completo e sottoposto a test rigorosi.

Funzionalità

  • Archivio dati reattivo in memoria
  • Modelli di dati chiave-valore e tabellari
  • Listener e sottoscrizioni granulari
  • Motore di query TinyQL (select/join/filter/group)
  • Indici per ricerche rapide
  • Metriche e aggregazioni
  • Relazioni tra tabelle
  • Schemi con valori predefiniti e inferenza dei tipi
  • Checkpoint con annullamento e ripristino
  • CRDT nativo MergeableStore
  • Sincronizzazione tramite WebSockets, BroadcastChannel e trasporti personalizzati
  • Persistenza nell’archiviazione del browser e in IndexedDB
  • Persistenza in database SQLite e PostgreSQL (e varianti come Bun/Expo SQLite)
  • Integrazioni con Yjs, Automerge, CR-SQLite, PGlite, ElectricSQL, Turso, PartyKit, Cloudflare Durable Objects
  • Hook React e componenti predefiniti opzionali (ui-react, ui-react-dom)
  • Strumento di sviluppo Inspector per i dati integrato nell’app
  • Progettazione local-first e adatta all’uso offline
  • Bundle molto piccolo e senza dipendenze
  • Copertura dei test al 100% e documentazione completa

Elementi correlati

Legend State

Questa potente libreria semplifica la gestione dello stato nelle vostre applicazioni e rende agevole la gestione di dati complessi.

MobX

Questa soluzione per la gestione dello stato consente di integrare senza difficoltà dati dinamici nelle applicazioni e si adatta facilmente ai cambiamenti.

Redux Toolkit

Un toolkit completo progettato per semplificare e migliorare lo sviluppo con Redux, assicurando che le applicazioni siano prevedibili e facili da mantenere.

valtio

Questa libreria semplifica la gestione dello stato basata su proxy per le applicazioni moderne, migliorando l'esperienza di sviluppo grazie a un rendering efficiente e a una facile manipolazione dello stato.

TanStack DB

Store client reattivo con query live e mutazioni ottimistiche, per interfacce utente coerenti in meno di un millisecondo e sincronizzazione in tempo reale.

Jotai

Una soluzione potente e leggera per la gestione dello stato, basata su un approccio atomico per le applicazioni React.

MobX-State-Tree

Una libreria completa che semplifica la gestione dello stato offrendo un approccio strutturato alla gestione dello stato mutabile.

TanStack Router

Una libreria di routing moderna e scalabile, progettata appositamente per React e specializzata nella sicurezza dei tipi e nella gestione efficiente dei dati.