コンテンツへスキップ

JavaScriptアプリケーション向けの、小型で依存関係のないリアクティブなデータストアおよび同期エンジンです。きめ細かな購読機能により、関連するデータが変更されたときだけUIが再レンダリングされるため、アプリケーションの高速性と予測可能性を保てます。

データは単純なキーと値のペア、または行とセルで構成される表形式でモデル化できます。組み込み機能には、デフォルト値と型推論を備えたスキーマ、高速検索用のインデックス、集計用のメトリクス、テーブル間のリレーション、元に戻す/やり直すためのチェックポイントシステム、選択、結合、フィルタリング、グループ化をリアクティブに行うSQLに近いクエリエンジン(TinyQL)があります。

ローカルファーストおよびオフラインファーストのワークフロー向けに設計されており、MergeableStoreによるネイティブCRDT対応で、クライアント間やサーバーとのデータ同期と決定論的なマージが可能です。ブラウザストレージやIndexedDBのほか、SQLiteやPostgreSQLなどのデータベースにデータを永続化でき、YjsやAutomergeとも統合できます。

オプションのReactバインディングには、完全にリアクティブなインターフェースを構築するためのフックや軽量なUIコンポーネントが含まれています。また、開発中にアプリ内でストアのデータをリアルタイムに確認・編集できるInspectorも利用できます。幅広い機能を備えながら、コアは小さく(gzip圧縮時で約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

サブミリ秒で一貫性のあるUIを実現し、リアルタイム同期を可能にする、ライブクエリと楽観的ミューテーション対応のリアクティブなクライアントストアです。

Jotai

Reactアプリケーションの状態管理に、アトミックなアプローチを採用した、高機能で軽量なソリューションです。

MobX-State-Tree

変更可能な状態を構造的に管理し、状態管理を簡素化する多機能ライブラリです。

TanStack Router

型安全性と効率的なデータ管理に特化した、React向けのモダンでスケーラブルなルーティングライブラリです。