powersync_sqlcipher 0.1.1 copy "powersync_sqlcipher: ^0.1.1" to clipboard
powersync_sqlcipher: ^0.1.1 copied to clipboard

PowerSync Flutter SDK - sync engine for building local-first apps.

PowerSync with SQLCipher SDK for Flutter #

PowerSync is a sync engine for building local-first apps with instantly-responsive UI/UX and simplified state transfer. Syncs between SQLite on the client-side and Postgres, MongoDB or MySQL on the server-side.

This package (powersync_sqlcipher) is the PowerSync client SDK for Flutter with encryption enabled using SQLCipher. It is currently in a beta release. This means it is safe to use in production, provided that you've tested your use cases.

If you do not require encryption in your Flutter application, we recommend using the powersync SDK.

Installing PowerSync with SQLCipher encryption in your own project #

Install the latest version of the package, for example:

flutter pub add powersync_sqlcipher

Version history can be found here.

Usage #

This SDK requires a slightly different setup to the powersync package in order to encrypt the local database:

import 'package/powersync_sqlcipher/powersync.dart';

/// Global reference to the database
late final PowerSyncDatabase db;

final cipherFactory = PowerSyncSQLCipherOpenFactory(
      path: path, key: "sqlcipher-encryption-key"); // https://www.zetetic.net/sqlcipher/sqlcipher-api/#key

db = PowerSyncDatabase.withFactory(cipherFactory, schema: schema);

Getting Started #

Our full SDK reference contains everything you need to know to get started implementing PowerSync in your project.

Changelog #

A changelog for this SDK is available here.

API Reference #

The full API reference for this SDK can be found here.

Examples #

For example projects built with PowerSync and Flutter, see our Demo Apps / Example Projects gallery. Most of these projects can also be found in the demos/ directory.

Found a bug or need help? #

  • Join our Discord server where you can browse topics from our community, ask questions, share feedback, or just say hello :)
  • Please open a GitHub issue when you come across a bug.
  • Have feedback or an idea? Submit an idea via our public roadmap or schedule a chat with someone from our product team.