npm dexie 4.4.0
Dexie v4.4.0

latest releases: 4.4.2, 4.4.1
17 days ago

This release introduces Blob Offloading and String Offloading for Dexie Cloud, enabling efficient handling of large binary and text data. It also includes IDB 3.0 optimizations and several bug fixes.

Related Package Releases

Package Version
dexie 4.4.0
dexie-cloud-addon 4.4.3
dexie-cloud-common 1.0.59
dexie-react-hooks 4.4.0
dexie-export-import 4.4.0

New Features

⚡ IDB 3.0 Optimizations

Leverages IndexedDB 3.0 getAll(options) for more efficient key range queries, reducing overhead for collection operations.

📦 Blob Offloading for Dexie Cloud

Large binary data (Blob, File, ArrayBuffer, TypedArray) is now automatically offloaded to cloud blob storage during sync. Data is stored normally in IndexedDB — offloading happens transparently during the sync process.

  • Automatic offloading: Binaries ≥ 4 KB are offloaded to blob storage during sync
  • Lazy resolution: BlobRefs are resolved back to their original types on first read
  • Optional Lazy blob mode: Configure blobMode: 'lazy' to download blobs on-demand instead of eagerly after sync (default is 'eager')
  • Progress tracking: Observable db.cloud.blobProgress for download progress
import Dexie from 'dexie';
import dexieCloud from 'dexie-cloud-addon';

const db = new Dexie('mydb', { addons: [dexieCloud] });
db.version(1).stores({ photos: '@id, title' });
db.cloud.configure({ databaseUrl: '...', blobMode: 'eager' });

// Store binary data — syncs normally, offloads transparently
await db.photos.add({
  title: 'Vacation',
  image: new Blob([imageData], { type: 'image/jpeg' })
});

📝 String Offloading for Dexie Cloud

Long strings are now offloaded to blob storage during sync, keeping IndexedDB data compact while preserving full string content in the cloud.

  • Configurable threshold: maxStringLength option (default: 32768 characters)
  • Transparent: Offloaded strings resolve back to regular strings on read
  • IndexedDB unchanged: Full strings remain in local IndexedDB
db.cloud.configure({
  databaseUrl: '...',
  maxStringLength: 32768 // Strings longer than this are offloaded (default)
});

Bug Fixes

  • fix(dexie-export-import): Fix UTF-8 corruption for non-ASCII strings during import (#2259)
  • fix(dexie-cloud): Always offload Blob/File objects regardless of size (#2182)
  • fix(react-hooks): Avoid direct React.use access for React < 19

Other Changes

  • feat(dexie-cloud): Add copy-to-clipboard button for whitelist command (#2261)
  • Use FinalizationRegistry for Dexie.connections and enforce maxConnections (#2254)

Don't miss a new dexie release

NewReleases is sending notifications on new releases.