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) is the PowerSync client SDK for Flutter.
See a summary of features here.
Note This package is recommended for Flutter applications that do not require on-device encryption.
- For Flutter applications that require encryption, use the
powersync_sqlcipherpackage.- For use cases such as server-side Dart or non-Flutter Dart environments, use the
powersync_corepackage.
flutter pub add powersyncOur full SDK reference contains everything you need to know to get started implementing PowerSync in your project.
Flutter Web support in version ^1.9.0 is currently in a beta release. It is functionally ready for production use, provided that you've tested your use cases.
Please familiarize yourself with the limitations for Flutter Web documented here.
The easiest way to test Flutter Web support is to run the Supabase Todo-List demo app:
- Clone this repo.
- Note: If you are an existing user updating to the latest code after a git pull, run
melos exec 'flutter pub upgrade'in the repo's root directory and make sure it succeeds.
- Run
melos preparein the repo's root - cd into the
demos/supabase-todolistfolder - If you haven’t yet:
cp lib/app_config_template.dart lib/app_config.dart(optionally update this config with your own Supabase and PowerSync project details). - Run
flutter run -d chrome
Install the latest version of the package, for example:
flutter pub add powersync:'^1.9.0'
Additional config is required for web projects. Please see our docs here for details.
A changelog for this SDK is available here.
The full API reference for this SDK can be found here.
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.
- 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.
