powersync
PowerSync Dart and Flutter SDK. Sync Postgres, MongoDB, MySQL or SQL Server with SQLite in your app
2.3.3
31K downloads/mo
#1840 most downloaded on pub.dev
powersync-ja/powersync.dart
What this package is like to depend on
Last release 27 days ago
28 Jul 2026
Ships fairly regularly
a new release about every 4 weeks
Nearly every release is documented
notes for 71 of 71 stable releases
4 versions withdrawn
withdrawn after publishing
3 years old
93 releases · first in 2023
15 releases in the last 12 months
see the full history below
Release timeline
93 releases · Feb 2023 to Jul 2026Releases
latest 60 of 93-
2.3.328 Jul 2026Release notes
Open source →Release powersync-v2.3.3
- Restore the ability to call
disconnect()on closed databases. - Internal: Update PowerSync SQLite core extension to latest version.
Release notes
Open source →- Restore the ability to call
disconnect()on closed databases. - Internal: Update PowerSync SQLite core extension to latest version.
- Restore the ability to call
-
2.3.223 Jul 2026Release notes
Open source →Release powersync-v2.3.2
- Fix state after calling
disconnect()not consistently representing the correct sync status.
Release notes
Open source →- Fix state after calling
disconnect()not consistently representing the correct sync status.
- Fix state after calling
-
2.3.122 Jun 2026Release notes
Open source →Release powersync-v2.3.1
- Fix
BucketStorage.select()acquiring a write lock for read-only queries. - Restore SQLCipher support on native platforms.
Release notes
Open source →- Fix
BucketStorage.select()acquiring a write lock for read-only queries. - Restore SQLCipher support on native platforms.
- Fix
-
2.3.010 Jun 2026Release notes
Open source →- Add
SyncOptions.httpClienttoSyncOptions. It can be set to make PowerSync use a custom HTTP client when connecting to the PowerSync Service. - Support
sqlite3_webversions 0.9.x.
- Add
-
2.2.027 May 2026Release notes
Open source →Release powersync-v2.2.0
- Fix
disconnect()call leaving stale database isolates behind. - Web: Update to SQLite 3.53.1.
- Web: Support OPFS-based file systems in Safari without additional headers. Remember to update the web worker with
dart run powersync:setup_webafter upgrading. - Support latest versions of
package:hooksandpackage:code_assets.
Release notes
Open source →- Fix
disconnect()call leaving stale database isolates behind. - Web: Update to SQLite 3.53.1.
- Web: Support OPFS-based file systems in Safari without additional headers.
- Support latest versions of
package:hooksandpackage:code_assets.
- Fix
-
2.1.005 May 2026Release notes
Open source →Release powersync-v2.1.0
- Add a DevTools extension to inspect running PowerSync databases in your app.
Release notes
Open source →- Add a DevTools extension to inspect running PowerSync databases in your app.
-
2.0.229 Apr 2026Release notes
Open source →Release powersync-v2.0.2
- Update PowerSync SQLite core extension to version 0.4.13.
- Fix changes in active Sync Stream subscriptions causing a reconnect delay.
Release notes
Open source →- Update PowerSync SQLite core extension to version 0.4.13.
- Fix changes in active Sync Stream subscriptions causing a reconnect delay.
-
2.0.114 Apr 2026 -
2.0.013 Apr 2026Release notes
Open source →Release powersync-v2.0.0
- Upgrade sqlite packages: Version 3.x of
sqlite3, 0.6.x ofsqlite3_web, 0.14.x ofsqlite_async.- Remember to download updated db workers and
sqlite3.wasmfiles after upgrading! - Breaking: Remove
package:powersync/sqlite3_open.dart, since SQLite is now loaded through build hooks exclusively. - Breaking: Remove
AbstractPowerSyncOpenFactoryandPowerSyncOpenFactory. If you want to customize how databases
are opened, use conditional imports forpackage:powersync/native.dartandpackage:powersync/web.dartto extend
NativePowerSyncOpenFactoryorWebPowerSyncOpenFactory, respectively. - Improve performance of native databases.
- Native databases can now be opened on multiple isolates or Flutter engines (e.g. for background tasks).
They will automatically share write locks and table updates. Note that only one instance may connect to the PowerSync service though. - For Chrome browsers, we now use OPFS by default instead of IndexedDB. This improves performance. Existing databases are still loaded from IndexedDB.
- The
maxReadersparameter onPowerSyncDatabaseconstructors is no longer functional, set that parameter on
SqliteOptionsinstead. - Add
watchUnthrottledandonChangeUnthrottledas variants ofwatchandonChangethat only take backpressure
from paused subscriptions into account withut using a fixed delay. - Add
abortableReadLockandabortableWriteLock, which can be used to acquire a read/write context with a flexible
abort signal instead of a fixed timeout.
- Remember to download updated db workers and
- Breaking: The
powersync_core,powersync_sqlcipherandpowersync_flutter_libspackages have been removed.
Thepowersyncpackage now provides the entire SDK for all platforms (both for Flutter and standalone Dart apps). - Breaking: The
powersync_sleepandpowersync_connection_nameSQL functions have been removed. Also, it is
no longer possible to define additional user-defined functions in Dart. - Add encryption support to the
powersyncpackage (see theEncryptionOptionsclass for details). - Remove the legacy Dart sync client. The new Rust client has been the default since version 1.17.0.
- Deprecate re-exports of other packages (
package:powersync/sqlite_async.dart,package:powersync/sqlite3_common.dart,
package:powersync/sqlite3.dart). Instead, add a dependency on the respective package and import it directly. - Remove
powersync_sync.worker.js.powersync_db.worker.jsnow covers both database access and sync. - Fix sync isolate retry loop (#397).
Release notes
Open source →- Upgrade sqlite packages: Version 3.x of
sqlite3, 0.6.x ofsqlite3_web, 0.14.x ofsqlite_async.- Remember to download updated db workers and
sqlite3.wasmfiles after upgrading! - Breaking: Remove
package:powersync/sqlite3_open.dart, since SQLite is now loaded through build hooks exclusively. - Breaking: Remove
AbstractPowerSyncOpenFactoryandPowerSyncOpenFactory. If you want to customize how databases are opened, use conditional imports forpackage:powersync/native.dartandpackage:powersync/web.dartto extendNativePowerSyncOpenFactoryorWebPowerSyncOpenFactory, respectively. - Improve performance of native databases.
- Native databases can now be opened on multiple isolates or Flutter engines (e.g. for background tasks). They will automatically share write locks and table updates. Note that only one instance may connect to the PowerSync service though.
- For Chrome browsers, we now use OPFS by default instead of IndexedDB. This improves performance. Existing databases are still loaded from IndexedDB.
- The
maxReadersparameter onPowerSyncDatabaseconstructors is no longer functional, set that parameter onSqliteOptionsinstead. - Add
watchUnthrottledandonChangeUnthrottledas variants ofwatchandonChangethat only take backpressure from paused subscriptions into account withut using a fixed delay. - Add
abortableReadLockandabortableWriteLock, which can be used to acquire a read/write context with a flexible abort signal instead of a fixed timeout.
- Remember to download updated db workers and
- Breaking: The
powersync_core,powersync_sqlcipherandpowersync_flutter_libspackages have been removed. Thepowersyncpackage now provides the entire SDK for all platforms (both for Flutter and standalone Dart apps). - Breaking: The
powersync_sleepandpowersync_connection_nameSQL functions have been removed. Also, it is no longer possible to define additional user-defined functions in Dart. - Add encryption support to the
powersyncpackage (see theEncryptionOptionsclass for details). - Remove the legacy Dart sync client. The new Rust client has been the default since version 1.17.0.
- Deprecate re-exports of other packages (
package:powersync/sqlite_async.dart,package:powersync/sqlite3_common.dart,package:powersync/sqlite3.dart). Instead, add a dependency on the respective package and import it directly. - Remove
powersync_sync.worker.js.powersync_db.worker.jsnow covers both database access and sync. - Fix sync isolate retry loop (#397).
- Upgrade sqlite packages: Version 3.x of
-
2.0.0-wip.010 Apr 2026 pre-releaseNothing published for this version
-
1.18.005 Mar 2026Release notes
Open source →- Add
RawTable.inferredconstructor, which can be used to specify raw tables without manualputanddeletestatements. - Update PowerSync SQLite core extension to version
0.4.11.
- Add
-
1.17.012 Dec 2025Release notes
Open source → -
1.16.226 Nov 2025 -
1.16.106 Oct 2025 -
1.16.002 Oct 2025Release notes
Open source →- Add
getCrudTransactions()returning a stream of completed transactions for uploads. - Add experimental support for sync streams.
- Add new attachments helper implementation in
package:powersync_core/attachments/attachments.dart. - Add SwiftPM support.
- Add
-
1.15.214 Aug 2025 -
1.15.111 Aug 2025Release notes
Open source →- Support latest versions of
package:sqlite3andpackage:sqlite_async. - Stream client: Improve
disconnect()while a connection is being opened. - Stream client: Support binary sync lines with Rust client and compatible PowerSync service versions.
- Sync client: Improve parsing error responses.
- Support latest versions of
-
1.15.017 Jul 2025Release notes
Open source →- Update the PowerSync core extension to
0.4.2. - Add support for raw tables, which are user-managed regular SQLite tables instead of the JSON-based views managed by PowerSync.
- Update the PowerSync core extension to
-
1.14.114 Jul 2025Release notes
Open source →- Rust client: Fix uploading local writs after reconnect.
PowerSyncDatabase.withDatabase: Renameloggersparameter tologgerfor consistency.- Fix parsing HTTP errors for sync service unavailability.
-
1.14.019 Jun 2025Release notes
Open source →Add a new sync client implementation written in Rust instead of Dart. While this client is still experimental, we intend to make it the default in the future. The main benefit of this client is faster sync performance, but upcoming features will also require this client. We encourage interested users to try it out by passing
SyncOptionsto theconnectmethod:database.connect( connector: YourConnector(), options: const SyncOptions( syncImplementation: SyncClientImplementation.rust, ), );Switching between the clients can be done at any time without compatibility issues. If you run into issues with the new client, please reach out to us!
-
1.13.103 Jun 2025Release notes
Open source →- Use
package:httpinstead ofpackage:fetch_clienton the web (since the former now uses fetch as well). - Allow disconnecting in the credentials callback of a connector.
- Deprecate retry and CRUD upload durations as fields and independent parameters. Use the new
SyncOptionsclass instead. - Fix sync progress report after a compaction or defragmentation on the sync service.
- Use
-
1.13.008 May 2025Release notes
Open source →- Report real-time progress information about downloads through
SyncStatus.downloadProgress. - Add
trackPreviousValuesoption onTablewhich setsCrudEntry.previousValuesto previous values on updates. - Add
trackMetadataoption onTablewhich adds a_metadatacolumn that can be used for updates. The configured metadata is available throughCrudEntry.metadata. - Add
ignoreEmptyUpdatesoption which skips creating CRUD entries for updates that don't change any values.
- Report real-time progress information about downloads through
-
1.12.425 Apr 2025 -
1.12.323 Apr 2025Release notes
Open source →This updates
powersync_coreto version1.2.3, which includes these changes:- Introduce locks to avoid duplicate sync streams when multiple instances of the same database are opened.
- Refactor connect / disconnect internally.
- Warn when multiple instances of the same database are opened.
- Fix race condition causing data not to be applied while an upload is in progress.
- Web: Fix token invalidation logic when a sync worker is used.
-
1.12.211 Mar 2025 -
1.12.107 Mar 2025 -
1.12.003 Mar 2025 -
1.11.318 Feb 2025 -
1.11.229 Jan 2025Release notes
Open source →- Web: Support running in contexts where web workers are unavailable.
- Web: Fix sync worker logs not being disabled.
powersync_sqlcipher: Web support.
-
1.11.116 Jan 2025 -
1.11.006 Jan 2025Release notes
Open source →- Increase limit on number of columns per table to 1999.
- Avoid deleting the $local bucket on connect().
-
1.10.012 Nov 2024Release notes
Open source →- This package now uses the
powersync_corepackage to provide its base functionality.
- This package now uses the
-
1.9.311 Nov 2024 -
1.9.206 Nov 2024 -
1.9.104 Nov 2024 -
1.9.001 Nov 2024Release notes
Open source →- FEAT: Use a sync worker for web that offloads the task of synchronizing databases to a separate worker, allowing it to be coordinated across tabs even when the database itself is not in a shared worker.
-
1.8.931 Oct 2024Release notes
Open source →- FIX: issue where CRUD uploads were not triggered when the SDK reconnected to the PowerSync service after being offline.
-
1.8.822 Oct 2024 -
1.8.717 Oct 2024 -
1.8.614 Oct 2024 -
1.8.514 Oct 2024 -
1.8.401 Oct 2024Release notes
Open source →- FEAT: Added a warning if connector
uploadDatafunctions don't process CRUD items completely.
- FEAT: Added a warning if connector
-
1.8.330 Sep 2024 -
1.8.209 Sep 2024Release notes
Open source →- Added
refreshSchema(), allowing queries and watch calls to work against updated schemas.
- Added
-
1.8.109 Sep 2024 -
1.8.006 Sep 2024 withdrawnRelease notes
Open source →- Requires
journeyapps/powersync-servicev0.5.0 or later when self-hosting - Use powersync-sqlite-core v0.2.1
- Customize
User-Agentheader - Add
client_idparameter to sync requests - Persist
lastSyncedAt - Emit update notifications for watch queries on
disconnectAndClear() - Validate that the
powersync-sqlite-coreversion number is in a compatible range of^0.2.0 - Always cast
target_op(write checkpoints) to ensure it's an integer - Sync optimizations for MOVE and REMOVE operations
- Requires
-
1.7.023 Aug 2024Release notes
Open source →- FEAT: Include schema validation check
- FEAT: Include new table check for maximum number of columns allowed
-
1.6.721 Aug 2024 -
1.6.621 Aug 2024 withdrawn -
1.6.520 Aug 2024 withdrawn -
1.6.406 Aug 2024Release notes
Open source →- FIX:
hasSyncedstatus should be reset afterdisconnectAndClearhas been called. (5e12a079)
- FIX:
-
1.6.331 Jul 2024Release notes
Open source →- FIX: Move JS to dev dependencies and lower version range ">=0.6.7 <0.8.0"
-
1.6.230 Jul 2024Release notes
Open source →- FEAT: Introduces a custom script to download the sqlite3 wasm and powersync worker files. The command
dart run powersync:setup_webmust be run in the application's folder.
- FEAT: Introduces a custom script to download the sqlite3 wasm and powersync worker files. The command
-
1.6.129 Jul 2024 -
1.6.025 Jul 2024Release notes
Open source →- Web support is now included in the standard release but remains in alpha. Web support may have some limitations or bugs.
-
1.6.0-alpha.118 Jul 2024 pre-releaseRelease notes
Open source →- Added support for client parameters when connecting.
- Fix watch query parameter
triggerOnTablesto prepend powersync view names. - Upgrade dependency
sqlite_asyncto version 0.8.1. - Fix issue where
hasSyncedis cleared when offline.
-
1.5.516 Jul 2024 -
1.5.415 Jul 2024Release notes
Open source →- Fix watch query parameter
triggerOnTablesto prepend powersync view names. - Upgrade dependency
sqlite_asyncto version 0.8.1.
- Fix watch query parameter
-
1.5.310 Jul 2024 -
1.5.203 Jul 2024Release notes
Open source →- Refactor
waitForFirstSync()to iterate through the stream and remove the use of aFuture. - Fix sync connection not immediately closed when calling
db.disconnect()(#114).
- Refactor