Przejdź do treści

Niewielki, reaktywny magazyn danych i silnik synchronizacji dla aplikacji JavaScript, bez zależności. Zapewnia szczegółowe subskrypcje, dzięki którym interfejsy aktualizują się tylko wtedy, gdy zmienią się istotne dane, co pozwala utrzymać szybkość i przewidywalność aplikacji.

Dane można modelować jako proste pary klucz-wartość lub struktury tabelaryczne z wierszami i komórkami. Wbudowane funkcje obejmują schematy z wartościami domyślnymi i wnioskowaniem typów, indeksy przyspieszające wyszukiwanie, metryki do agregacji, relacje między tabelami, system punktów kontrolnych z funkcjami cofania i ponawiania oraz silnik zapytań zbliżony do SQL (TinyQL), który reaktywnie wybiera, łączy, filtruje i grupuje dane.

Tinybase zaprojektowano z myślą o przepływach pracy local-first i offline-first. Obsługuje natywnie CRDT za pośrednictwem MergeableStore, aby synchronizować dane i deterministycznie scalać je między klientami i serwerami. Dane można utrwalać w pamięci przeglądarki i IndexedDB, a także w bazach takich jak SQLite i PostgreSQL. Dostępne są również integracje z Yjs i Automerge.

Opcjonalne powiązania z React obejmują hooki i lekkie komponenty interfejsu do tworzenia w pełni reaktywnych interfejsów. Wbudowany Inspector pozwala wyświetlać i edytować dane magazynu na żywo podczas programowania. Mimo szerokiego zakresu możliwości rdzeń pozostaje niewielki (około 5.3kB–11.7kB po kompresji gzip), jest w pełni udokumentowany i dokładnie przetestowany.

Funkcje

  • Reaktywny magazyn danych w pamięci
  • Modele danych klucz-wartość i tabelaryczne
  • Szczegółowe nasłuchiwacze i subskrypcje
  • Silnik zapytań TinyQL (select/join/filter/group)
  • Indeksy przyspieszające wyszukiwanie
  • Metryki i agregacje
  • Relacje między tabelami
  • Schematy z wartościami domyślnymi i wnioskowaniem typów
  • Punkty kontrolne z funkcjami cofania i ponawiania
  • Natywny CRDT MergeableStore
  • Synchronizacja przez WebSockets, BroadcastChannel i niestandardowe mechanizmy transportu
  • Utrwalanie danych w pamięci przeglądarki i IndexedDB
  • Utrwalanie danych w bazach SQLite i PostgreSQL (oraz wariantach, takich jak Bun/Expo SQLite)
  • Integracje z Yjs, Automerge, CR-SQLite, PGlite, ElectricSQL, Turso, PartyKit i Cloudflare Durable Objects
  • Opcjonalne hooki React i gotowe komponenty (ui-react, ui-react-dom)
  • Wbudowane narzędzie deweloperskie Inspector do danych aplikacji
  • Projekt z myślą o local-first i pracy offline
  • Niewielki pakiet bez zależności
  • 100% pokrycia testami i obszerna dokumentacja

Powiązane pozycje

Legend State

Ta wydajna biblioteka upraszcza zarządzanie stanem w aplikacjach i ułatwia obsługę złożonych danych.

MobX

To rozwiązanie do zarządzania stanem umożliwia płynną integrację dynamicznych danych z aplikacjami i bezproblemowo dostosowuje się do zmian.

Redux Toolkit

Kompleksowy zestaw narzędzi, który usprawnia i rozwija proces tworzenia aplikacji w Redux, zapewniając ich przewidywalność i łatwość utrzymania.

valtio

Ta biblioteka upraszcza zarządzanie stanem oparte na proxy w nowoczesnych aplikacjach, usprawniając proces tworzenia dzięki wydajnemu renderowaniu i łatwej manipulacji stanem.

TanStack DB

Reaktywny magazyn danych po stronie klienta z zapytaniami na żywo i optymistycznymi mutacjami, zapewniający spójne interfejsy z czasem reakcji poniżej milisekundy oraz synchronizację w czasie rzeczywistym.

Jotai

Wydajne, a zarazem lekkie rozwiązanie do zarządzania stanem w aplikacjach React, oparte na podejściu atomowym.

MobX-State-Tree

Rozbudowana biblioteka, która upraszcza zarządzanie stanem, zapewniając uporządkowane podejście do obsługi zmiennego stanu.

TanStack Router

Nowoczesna i skalowalna biblioteka routingu dla React, specjalizująca się w bezpieczeństwie typów i wydajnym zarządzaniu danymi.