Перейти до вмісту

Компактне реактивне сховище даних і механізм синхронізації без залежностей для застосунків на JavaScript. Завдяки точковим підпискам інтерфейс оновлюється лише за зміни релевантних даних, що забезпечує швидку та передбачувану роботу застосунків.

Дані можна моделювати як прості пари ключ-значення або як таблиці з рядками й клітинками. Вбудовані можливості охоплюють схеми зі значеннями за замовчуванням і виведенням типів, індекси для швидкого пошуку, метрики для агрегації, зв’язки між таблицями, систему контрольних точок із скасуванням і повторенням дій, а також суміжний із SQL механізм запитів TinyQL для реактивного вибору, об’єднання, фільтрування та групування.

Створене для процесів із пріоритетом локальних даних і роботи офлайн, сховище забезпечує вбудовану підтримку CRDT через MergeableStore для синхронізації та детермінованого об’єднання даних між клієнтами й серверами. Дані можна зберігати у сховищі браузера та IndexedDB, а також у базах даних на кшталт SQLite і PostgreSQL; доступні інтеграції з Yjs і Automerge.

Необов’язкові прив’язки React містять хуки та легкі компоненти інтерфейсу для створення повністю реактивних інтерфейсів, а також вбудований Inspector для перегляду й редагування даних сховища в реальному часі під час розробки. Попри широкий набір можливостей, ядро залишається компактним (близько 5.3kB–11.7kB у стисненому вигляді), має повну документацію та ретельно протестоване.

Можливості

  • Реактивне сховище даних у пам’яті
  • Моделі даних «ключ-значення» та табличні моделі
  • Точкові слухачі та підписки
  • Механізм запитів TinyQL (вибір/об’єднання/фільтрування/групування)
  • Індекси для швидкого пошуку
  • Метрики та агрегації
  • Зв’язки між таблицями
  • Схеми зі значеннями за замовчуванням і виведенням типів
  • Контрольні точки зі скасуванням і повторенням дій
  • Вбудований CRDT MergeableStore
  • Синхронізація через WebSockets, BroadcastChannel і користувацькі транспортні механізми
  • Збереження у сховищі браузера та IndexedDB
  • Збереження в базах даних SQLite і PostgreSQL (а також варіантах на кшталт Bun/Expo SQLite)
  • Інтеграції з Yjs, Automerge, CR-SQLite, PGlite, ElectricSQL, Turso, PartyKit, Cloudflare Durable Objects
  • Необов’язкові хуки React і готові компоненти (ui-react, ui-react-dom)
  • Вбудований інструмент розробника Inspector для даних
  • Розробка з пріоритетом локальних даних і підтримкою роботи офлайн
  • Компактний пакет без залежностей
  • 100% покриття тестами та докладна документація

Пов’язані матеріали

Legend State

Ця потужна бібліотека спрощує керування станом у застосунках і полегшує роботу зі складними даними.

MobX

Це рішення для керування станом забезпечує просту інтеграцію динамічних даних у ваші застосунки та легко адаптується до змін.

Redux Toolkit

Комплексний набір інструментів, що спрощує та покращує розробку на Redux, допомагаючи створювати передбачувані застосунки, якими легко керувати.

valtio

Ця бібліотека спрощує керування станом на основі проксі в сучасних застосунках, покращуючи досвід розробки завдяки ефективному рендерингу та простому керуванню станом.

TanStack DB

Реактивне клієнтське сховище з живими запитами та оптимістичними мутаціями для узгоджених інтерфейсів із затримкою до мілісекунди та синхронізацією в реальному часі.

Jotai

Потужне й водночас легке рішення для керування станом у React-застосунках на основі атомарного підходу.

MobX-State-Tree

Багатофункціональна бібліотека, що спрощує керування станом завдяки структурованому підходу до роботи зі змінюваним станом.

TanStack Router

Сучасна масштабована бібліотека маршрутизації для React, що спеціалізується на типобезпеці та ефективному керуванні даними.