datalocal 2.0.0 copy "datalocal: ^2.0.0" to clipboard
datalocal: ^2.0.0 copied to clipboard

Encrypted document-style local persistence for Flutter with queries, reactive snapshots, migration, and recoverable SharedPreferences storage.

example/lib/main.dart

import 'package:datalocal/datalocal.dart';
import 'package:datalocal_sqlite/datalocal_sqlite.dart';
import 'package:flutter/material.dart';

import 'query_playground.dart';

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  runApp(const DataLocalExampleApp());
}

class DataLocalExampleApp extends StatelessWidget {
  const DataLocalExampleApp({super.key, this.databaseFactories});

  final Map<String, DataLocalDatabaseFactory>? databaseFactories;

  @override
  Widget build(BuildContext context) => MaterialApp(
    title: 'DataLocal Query Playground',
    theme: ThemeData(
      colorScheme: ColorScheme.fromSeed(seedColor: Colors.indigo),
      useMaterial3: true,
    ),
    home: QueryPlaygroundPage(
      databaseFactories:
          databaseFactories ??
          <String, DataLocalDatabaseFactory>{
            'SharedPreferences': openSharedPreferencesDatabase,
            'SQLite': openSqliteDatabase,
          },
    ),
  );
}

Future<DataLocalDatabase> openSharedPreferencesDatabase() async {
  const databaseName = 'datalocal-v2-query-playground-preferences';
  return DataLocalDatabase.open(
    name: databaseName,
    storage: DataLocalSharedPreferencesAsyncStorage(),
    encryption: DataLocalAesGcmEncryptionProvider(
      keyProvider: DataLocalSecureStorageKeyProvider(
        databaseName: databaseName,
      ),
    ),
  );
}

Future<DataLocalDatabase> openSqliteDatabase() async {
  const databaseName = 'datalocal-v2-query-playground-sqlite';
  return DataLocalDatabase.open(
    name: databaseName,
    storage: DataLocalSqliteStorage(),
    encryption: DataLocalAesGcmEncryptionProvider(
      keyProvider: DataLocalSecureStorageKeyProvider(
        databaseName: databaseName,
      ),
    ),
  );
}
4
likes
160
points
428
downloads

Documentation

API reference

Publisher

verified publisherlamun.my.id

Weekly Downloads

Encrypted document-style local persistence for Flutter with queries, reactive snapshots, migration, and recoverable SharedPreferences storage.

Repository (GitHub)
View/report issues

Topics

#database #encryption #local-storage #persistence #shared-preferences

License

MIT (license)

Dependencies

collection, flutter, flutter_secure_storage, intl, pointycastle, shared_preferences

More

Packages that depend on datalocal