idb_sqflite 1.3.6+2 copy "idb_sqflite: ^1.3.6+2" to clipboard
idb_sqflite: ^1.3.6+2 copied to clipboard

IndexedDB API on top of sqflite for Flutter (Desktop and Mobile) and DartVM io applications

idb_sqflite #

Indexed DB for flutter on top of sqflite.

  • Supports both iOS and Android
  • Supports Flutter Web through idb_shim.
  • Supports Dart VM (Desktop) through idb_shim

Example #

Simple notepad available here running on Flutter (iOS/Android/Web).

Getting Started #

import 'package:idb_sqflite/idb_sqflite.dart';
import 'package:sqflite/sqflite.dart';

Future main() async {
  // The sqflite flutter factory
  var factory = getIdbFactorySqflite(databaseFactory);
  // define the store name
  const String storeName = "records";

  // open the database
  Database db = await factory.open("my_records.db", version: 1,
      onUpgradeNeeded: (VersionChangeEvent event) {
    Database db = event.database;
    // create the store
    db.createObjectStore(storeName, autoIncrement: true);
  });

  // put some data
  var txn = db.transaction(storeName, idbModeReadWrite);
  var store = txn.objectStore(storeName);
  var key = await store.put({"some": "data"});
  await txn.completed;

  // read some data
  txn = db.transaction(storeName, idbModeReadOnly);
  store = txn.objectStore(storeName);
  var value = await store.getObject(key);

  print(value);
  await txn.completed;
}

See idb_shim for API usage or more generally the W3C reference

SDB #

SDB is a simplified wrapper API around IndexedDB.

SDB Example #

import 'package:idb_sqflite/sdb_sqflite.dart';
import 'package:sqflite_common_ffi/sqflite_ffi.dart';
Future main() async {
  // Initialize FFI
  sqfliteFfiInit();

  // Use the ffi factory
  var sdbFactory = sdbFactoryFromSqflite(databaseFactoryFfi);

  print('Stored in .local/tmp/out/my_records.db');
  var dbPath = join('.local', 'tmp', 'out', 'my_records.db');

  // Testing only, remove any existing database
  await sdbFactory.deleteDatabase(dbPath);
  var store = SdbStoreRef<int, SdbModel>('store');
  // open the database
  final db = await sdbFactory.openDatabase(
    dbPath,
    options: SdbOpenDatabaseOptions(
      version: 1,
      schema: SdbDatabaseSchema(stores: [store.schema(autoIncrement: true)]),
    ),
  );
  // Add some data
  var key = await store.add(db, {'some': 'data'});
  await store.add(db, {'some': 'other data'});
  final snapshot = await store.record(key).get(db);

  print(snapshot);
  await db.close();
}
46
likes
160
points
843
downloads

Documentation

API reference

Publisher

verified publishertekartik.com

Weekly Downloads

IndexedDB API on top of sqflite for Flutter (Desktop and Mobile) and DartVM io applications

Repository (GitHub)
View/report issues

Topics

#database

License

BSD-2-Clause (license)

Dependencies

idb_shim, meta, sqflite_common, synchronized

More

Packages that depend on idb_sqflite