NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #3221 most downloaded on pub.dev
PowerSync Dart SDK - sync engine for building local-first apps.
Last release 7 months ago
05 Mar 2026
Ships fairly regularly
a new release about every 4 weeks
Nearly every release is documented
notes for 22 of 22 stable releases
Nothing withdrawn
no release was ever pulled
2 years old
22 releases · first in 2024
Add RawTable.inferred constructor, which can be used to specify raw tables without manual put and delete statements.
RawTable.inferred constructor, which can be used to specify raw tables without manual put and delete statements.FEAT: Custom App Metadata (#354).
One column per month.
Support latest version of sqlite_async.
Web: Fix decoding sync streams on status.
Web: Fix decoding sync streams on status.
DOCS: Point to uses in example. (4f4da24e)
Add getCrudTransactions() returning a stream of completed transactions for uploads.
getCrudTransactions() returning a stream of completed transactions for uploads.package:powersync_core/attachments/attachments.dart.powersync_core with build_web_compilers.Fix excessive memory consumption during large sync.
Support latest versions of package:sqlite3 and package:sqlite_async.
package:sqlite3 and package:sqlite_async.disconnect() while a connection is being opened.Update the PowerSync core extension to 0.4.2.
0.4.2.Rust client: Fix uploading local writes after reconnect.
PowerSyncDatabase.withDatabase: Rename loggers parameter to logger for consistency.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
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 SyncOptions to the
connect method:
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!
Deprecate retry and CRUD upload durations as fields and independent parameters. Use the new SyncOptions class instead.
package:http instead of package:fetch_client on the web (since the former now uses fetch as well).SyncOptions class instead.Report real-time progress information about downloads through SyncStatus.downloadProgress.
SyncStatus.downloadProgress.trackPreviousValues option on Table which sets CrudEntry.previousValues to previous values on updates.trackMetadata option on Table which adds a _metadata column that can be used for updates.
The configured metadata is available through CrudEntry.metadata.ignoreEmptyUpdates option which skips creating CRUD entries for updates that don't change any values.Fix deadlock when connect() is called immediately after opening a database.
connect() is called immediately after opening a database.Introduce locks to avoid duplicate sync streams when multiple instances of the same database are opened.
Fix handling token invalidation on the web.
Raise minimum version of core extension to 0.3.11.
Support bucket priorities and partial syncs.
Add explicit casts in sync service, avoiding possible issues with dart2js optimizations.
Web: Support running in contexts where web workers are unavailable.
powersync_sqlcipher: Web support.Fix statusStream emitting the same sync status multiple times.
statusStream emitting the same sync status multiple times.Increase limit on number of columns per table to 1999.
Dart library for Powersync for use cases such as server-side Dart or non-Flutter Dart environments initial release.
Your coding agent can read these notes before it upgrades. Set up the MCP server →