跳到主要内容

WebStorage

存储限制

namelimit
sessionStorage5 MB
localStorage5 MB
Cookie4 KB
Cookie kv1 KB
IndexedDB10 MB - 2GB
信息
  • 不同浏览器限制不同,这里列举 安全/常见值

Performance

store10000
localStorage110ms
IndexedDB1500-2200ms

IndexedDB 很慢

Library

  • dexie
    • IndexedDB 存储
    • 支持同步 - 但不是开箱即用
    • ~82kB/26kB - 无依赖
  • rxdb
    • Apache-2.0, Typescript
    • offline first
    • 有 schema
    • 支持 punchdb, lokijs, dexie 存储
    • 默认支持 REST 和 GraphQL 同步
    • 使用 punchdb 也可以用 CouchDB 的同步
    • Premium: IndexedDB, SQLite, Sharding, Query Optimizer
    • ~114kB/31kB
      • binary-decision-diagram
      • broadcast-channel
      • event-reduce-js
      • spark-md5
      • object-path
      • clone
    • https://rxdb.info/nodejs-database.html
  • clientdb/clientdb
    • Apache-2.0, Typescript
    • in-memory database, realtime
  • PouchDB
    • CouchDB replication
    • 支持 attachments
    • ~117kB/37kB
      • uuid
      • spark-md5
  • techfort/LokiJS
    • in-memory database
  • YousefED/SyncedStore
    • 基于 yjs 同步
    • 构建协作应用
  • localForge
    • 类似 localStorage
    • 异步
    • 支持多后端
  • Nozbe/WatermelonDB
    • 定位是 DB - 使用 class+decorator 定义 模型
    • React - LokiJS
    • React Native - SQLite
    • ~155kB - 基于 rxjs
  • Absurd-SQL
    • indexeddb
  • SQLite
    • empscripten Filesystem API
  • DuckDB WASM
  • Supabase
  • RethinkDB
    • Horizon
  • NeDB
    • Node.js, nw.js, Electron, Browser
    • MongoDB 查询语法
    • 项目停止
  • amark/gun
    • syncing decentralized graph data
  • isaacs/node-lru-cache
  • typicode/lowdb
    • MIT, JS
    • Simple and fast JSON database
    • 支持 nodejs、browser、memory
  • FrigadeHQ/remote-storage
    • 非常简单的 remoteStorage 实现
    • GET/PUT/DELETE https://api.remote.storage/entities/{key}
    • Header
      • x-remote-storage-instance-id
      • x-remote-storage-user-id