Skip to content
Nuvyntra Labs
All packages

Background & sync

Plugin.Maui.LocalStore

Room-style local store — host picks SQLite, NuvexaDB, or another engine

Current NuGet 1.1.0

An abstract database layer for .NET MAUI on Android, iOS, Mac Catalyst, and Windows. The host picks StoreBackend; application code always uses the same ILocalStore / IStoreCollection<T> methods.

Install

dotnet add package Plugin.Maui.LocalStore

Package ID: Plugin.Maui.LocalStore

Plugin.Maui.* restores from GitHub Packages. Add the org feed first — see Use nuvyntralabs GitHub Packages from a C# project.

Overview

Plugin.Maui.LocalStore is a Room-style abstract database layer for MAUI. The host sets StoreBackend (SQLite, NuvexaDB, Realm, LiteDB, DuckDB, SQLCipher, Firebird, LMDB, RocksDB, or LevelDB). Application code stays on InsertAsync / FindByIdAsync / ReplaceAsync / DeleteByIdAsync / FindAsync. 1.1 adds AutoMigrate + Map<T>, ILocalStore.QueryAsync / ExecuteAsync, and source-generated [StoreDao] interfaces. Some engines fall back to JSON files when the native library is missing. It is not JobQueue, OfflineSync, FileVault, or androidx.room.

Current release

  • 1.1.0. Current pack. Automatic engine migration (AutoMigrate, MigrateFrom, Map<T>, LocalStore.MigrateAsync). Raw SQL / NQL on ILocalStore.QueryAsync / ExecuteAsync (StoreQueryLanguage). Source-generated [StoreDao] implementations (GetDao<T>, AddMauiLocalStoreDao<T>).
  • 1.0.1. Ten engines behind IStoreCollection<T>, platform table, and JSON fallback when a native library is missing. Sample uses the same OS TFMs as the library.
  • 1.0.0. First stable release. Host-selected SQLite or NuvexaDB, reserved StoreBackend values, StoreFilter / StoreQuery, and INuvexaLocalStore.ExecuteNqlAsync.

Full upgrade map for the 3 September 2026 hardening wave: Hardened plugin releases.

Capabilities

  • Host-selected StoreBackend; the same IStoreCollection<T> CRUD on every engine.
  • SQLite, NuvexaDB, Realm, LiteDB, and SQLCipher run on Android, iOS, Windows, and Mac Catalyst.
  • DuckDB, Firebird, RocksDB, LevelDB, and LMDB (Catalyst) use a JSON-file fallback when natives are missing.
  • StoreFilter (Eq, Ne, Gte, Lt, And, Or) and StoreQuery (sort / skip / limit).
  • AutoMigrate + Map<T>, or LocalStore.MigrateAsync, to copy collections when the destination is empty.
  • ILocalStore.QueryAsync / ExecuteAsync when QueryLanguage is Sql or Nql.
  • Source-generated [StoreDao] / [StoreRaw] via GetDao<T> or AddMauiLocalStoreDao<T>.
  • UseMauiLocalStore, AddMauiLocalStore, or LocalStore.Open without the host.
  • No sibling PackageReference to OfflineSync, JobQueue, or FileVault.

Documentation

Discussion

Comment on Plugin.Maui.LocalStore. The thread lives on this component's GitHub repository (nuvyntralabs/Plugin.Maui.LocalStore). Sign in with GitHub — Giscus uses Discussions, Utterances uses Issues.

Related in Background & sync