Pular para o conteúdo

Um armazenamento de dados reativo e mecanismo de sincronização pequeno e sem dependências para aplicações JavaScript. Oferece assinaturas granulares para que as interfaces só sejam renderizadas novamente quando os dados relevantes mudam, mantendo as aplicações rápidas e previsíveis.

Os dados podem ser modelados como simples pares chave-valor ou como estruturas tabulares com linhas e células. Entre os recursos integrados estão esquemas com valores padrão e inferência de tipos, índices para buscas rápidas, métricas para agregações, relações entre tabelas, um sistema de pontos de controle para desfazer/refazer e um mecanismo de consulta semelhante a SQL (TinyQL) para selecionar, juntar, filtrar e agrupar dados de forma reativa.

Projetado para fluxos de trabalho local-first e offline-first, oferece suporte nativo a CRDTs por meio do MergeableStore, para sincronizar e mesclar dados de forma determinística entre clientes e servidores. A persistência está disponível no armazenamento do navegador e no IndexedDB, além de bancos de dados como SQLite e PostgreSQL e integrações com Yjs e Automerge.

As integrações opcionais com React incluem hooks e componentes leves de interface para criar interfaces totalmente reativas, além de um Inspector no aplicativo para visualizar e editar dados do armazenamento em tempo real durante o desenvolvimento. Apesar da ampla gama de recursos, o núcleo continua pequeno (cerca de 5.3kB–11.7kB compactado com gzip), totalmente documentado e rigorosamente testado.

Recursos

  • Armazenamento reativo de dados em memória
  • Modelos de dados chave-valor e tabulares
  • Listeners e assinaturas granulares
  • Mecanismo de consultas TinyQL (select/join/filter/group)
  • Índices para buscas rápidas
  • Métricas e agregações
  • Relações entre tabelas
  • Esquemas com valores padrão e inferência de tipos
  • Pontos de controle com desfazer/refazer
  • MergeableStore com CRDTs nativos
  • Sincronização via WebSockets, BroadcastChannel e transportes personalizados
  • Persistência no armazenamento do navegador e no IndexedDB
  • Persistência em bancos de dados SQLite e PostgreSQL (e variantes como Bun/Expo SQLite)
  • Integrações com Yjs, Automerge, CR-SQLite, PGlite, ElectricSQL, Turso, PartyKit, Cloudflare Durable Objects
  • Hooks opcionais para React e componentes pré-criados (ui-react, ui-react-dom)
  • Ferramenta Inspector de dados integrada ao aplicativo
  • Design local-first e compatível com uso offline
  • Pacote pequeno e sem dependências
  • 100% de cobertura de testes e documentação abrangente

Itens relacionados

Legend State

Esta poderosa biblioteca simplifica o gerenciamento de estado nos seus aplicativos e facilita o tratamento de dados complexos.

MobX

Esta solução de gerenciamento de estado permite integrar dados dinâmicos às suas aplicações sem complicações e se adapta às mudanças com facilidade.

Redux Toolkit

Um kit de ferramentas completo desenvolvido para simplificar e aprimorar o desenvolvimento com Redux, garantindo que as aplicações sejam previsíveis e fáceis de manter.

valtio

Esta biblioteca simplifica o gerenciamento de estado baseado em proxies em aplicações modernas, aprimorando a experiência de desenvolvimento com renderização eficiente e manipulação fácil do estado.

TanStack DB

Armazenamento reativo no cliente com consultas em tempo real e mutações otimistas para interfaces consistentes em menos de um milissegundo e sincronização em tempo real.

Jotai

Uma solução poderosa e leve de gerenciamento de estado que adota uma abordagem atômica para gerenciar o estado em aplicativos React.

MobX-State-Tree

Uma biblioteca completa que simplifica o gerenciamento de estado com uma abordagem estruturada para lidar com estados mutáveis.

TanStack Router

Uma biblioteca de roteamento moderna e escalável, projetada especificamente para React, com foco na segurança de tipos e no gerenciamento eficiente de dados.