OSS探訪

IndexedDBをPromiseベースのAPIと型付きテーブルで扱い、ブラウザ内データを管理する

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
14,615
主要言語
TypeScript
ライセンス
Apache-2.0
リポジトリ最終更新
2026/09/28
ページ内ナビ

概要

Dexie.jsは、ブラウザ標準のIndexedDBを扱いやすくするJavaScript/TypeScriptライブラリです。データベースschemaを宣言し、Table・Collection・WhereClauseのAPIで追加、検索、更新、bulk処理を行えます。Reactではdexie-react-hooksと組み合わせたlive queryも利用できます。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

主な特徴

schemaを宣言してIndexedDBをテーブルAPIで操作する

new Dexie()でデータベースを作成し、version().stores()でprimary keyとindexを宣言します。追加・検索・更新・削除をPromiseベースのTable/Collection APIから扱えます。

出典:[2]

bulk処理とframework連携でローカルデータを扱う

bulkAddやbulkPutなどのbulk APIを提供し、ReactではuseLiveQueryを使ってIndexedDBの変更をUIへ反映できます。READMEはVue、Svelte、Angularなどのtutorialも案内しています。

出典:[2]

向いている用途

offline-firstなWebアプリや端末内キャッシュに向く

PWA、Electron、Capacitorを含むブラウザ系アプリで、構造化データを端末内へ保持し、検索や更新をIndexedDB上で行いたいケースに向きます。

出典:[2]

導入前の確認

browser storageの制約とschema migrationをアプリ側で設計する

Dexie.jsはIndexedDBのwrapperなので、保存容量、eviction、browserごとのstorage policyなどの制約は残ります。schemaを変更する場合もversionを上げ、既存データのmigrationを考慮する必要があります。

出典:[2]

legacy sync addonを新規採用しない

READMEはdexie-observableとdexie-syncableをlegacyかつ非メンテナンスと明記しています。同期が必要な新規設計では、現行のDexie Cloud等との役割分担を確認します。

出典:[2][3]

参考にした公式資料

  1. [1]dexie/Dexie.js repository(2026-09-30)
  2. [2]Dexie.js README(2026-09-30)
  3. [3]Dexie v4.4.6 release(2026-09-30)
  4. [4]Dexie.js Apache-2.0 license(2026-09-30)
編集部からの補足

IndexedDBの低水準APIを直接扱うよりschema・query・bulk処理を整理しやすいのが強みです。v4.4.6を基準に、browser storage制約とschema migrationはDexie導入後もアプリ側の設計事項として残ります。

3ステップで試す

  1. 1

    Dexieを追加

    公式READMEのnpm手順で既存のWebプロジェクトへDexieを追加します。

    npm install dexie
  2. 2

    IndexedDBのschemaを宣言

    import { Dexie } from 'dexie'; の後でdatabase名、primary key、indexを定義します。

    const db = new Dexie('FriendDatabase'); db.version(1).stores({ friends: '++id, age' });
  3. 3

    データを追加してqueryを確認

    Table APIでデータを追加し、indexを使ったquery結果を確認します。

    await db.friends.add({ name: 'Alice', age: 21 }); const rows = await db.friends.where('age').below(30).toArray();
公式READMEで確認

成長

成長の推移 · 直近30日

14,615 Stars

推移データを蓄積中です。

開発アクティビティ

直近90日・週次

Commit(直近30日)
8
Open PR
20

開発アクティビティを蓄積中です。

Built with

カテゴリとタグ

GitHubデータ

GitHubのデータGitHubの詳細データを見る

GitHub Topics

  • javascript
  • indexeddb
  • database
  • offline-storage
  • offline
  • storage
Stars
14,615
Forks
712
Watchers
114
Open Issues
576
Contributors
101
所有者種別
Organization
主要言語
TypeScript
ライセンス
Apache-2.0
リポジトリ最終更新
2026/09/28

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?