sembast_sqflite

Creator: coderz1093

Last updated:

Add to Cart

Description:

sembast sqflite

sembast_sqflite #
sembast DB for flutter on top of sqflite.

Supports both iOS and Android
Supports Flutter Web through sembast_web.
Supports Dart VM (Desktop) through sembast

See sembast for API usage
Setup #
Setup instructions for all
platforms (Flutter/VM, iOS/Android/MacOS, Windows/Linux)
Quick usage #
Example for Flutter (iOS/Android/MacOS):
import 'package:sembast_sqflite/sembast_sqflite.dart';
import 'package:sembast_test/test_common.dart';
import 'package:sqflite/sqflite.dart' as sqflite;

export 'package:sembast/sembast.dart';

Future main() async {
/// Sembast sqflite based database factory.
///
/// Supports iOS/Android/MacOS for now.
final factory = getDatabaseFactorySqflite(sqflite.databaseFactory);

// Define the store, key is a string, value is a string
var store = StoreRef<String, String>.main();
// Define the record
var record = store.record('my_key');

// Open the database
var db = await factory.openDatabase('test.db');

// Write a record
await record.put(db, 'my_value');

// print store content
print(await store.stream(db).first);

// Close the database
await db.close();
}
copied to clipboard
Why #
You might wonder why...sembast already has its own io format. However sembast io is not cross process safe and one
might consider that it is not a well known robust database system.
Here sqflite is used as the based of a journal database that provides data to sembast, allowing a fast all-in-memory
access and safe cross process database storage and transaction mechanism.
Usage #

sembast_sqflite should be used from the main isolate only
While being cross-process safe, you might encounter locked access when using multiple transactions are in progress, which could happen while debugging.
Applications should not rely on internal storage format

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.