Skip to content

Releases: powersync-ja/powersync-kotlin

v1.11.2

26 Mar 12:48
c47e417

Choose a tag to compare

  • Don't attempt to create WebSocket connections on watchOS.
  • Update default SQLite cache size to 50MB, this was previously erroneously set to 200MB
  • Move dispatching responsibility into SQLiteConnectionPool implementations after obtaining a connection lease. Implementers of SQLiteConnectionPool should dispatch blocking SQLite callbacks to an appropriate dispatcher such as Dispatchers.IO. This should prevent the worker pool from expanding when large numbers of concurrent operations are requested.
  • Skip creating ps_crud entries when clearing raw tables.

Full Changelog: v1.11.1...v1.11.2

v1.11.1

14 Mar 12:41
7e758fa

Choose a tag to compare

What's Changed

  • Fix RSocket connection bugs on iOS (and other platforms using the RSocket sync transport):
    • Fix false connected: true status when using an invalid token. ConnectionEstablished is now
      only emitted when the first data frame arrives from the server, matching the HTTP path which
      waits for a 200 OK.
    • Fix sync loop terminating permanently when the server rejects the connection with an RSocket
      ERROR frame (e.g. invalid JWT). RSocketError extends Throwable not Exception, so it was
      not caught by the retry loop.
    • Fix sync loop stalling indefinitely after a transport-layer failure (dead socket, network
      dropout).

File hashes:

a50fdce3a38ea490e27e1759bdf75edbde2399cca6ad77dc15ebd2399a9f9ac8  PowersyncKotlinRelease.zip

v1.11.0

05 Mar 10:05

Choose a tag to compare

What's Changed

  • Breaking: On tables, the localOnly, insertOnly, trackMetadata, trackPreviousValues and ignoreEmptyUpdates options are now stored in a TableOptions class. Existing constructors continue to work, but calling copy with any of these parameters no longer works.
  • Make raw tables easier to use (in #324):
    • Introduce the RawTableSchema class storing the name of a raw table in the database. When set, put and delete statements can be inferred automatically.
    • Add RawTable.jsonDescription, which can be passed to the powersync_create_raw_table_crud_trigger SQL function to auto-create triggers forwarding writes to ps_crud.
  • Update PowerSync core extension to version 0.4.11 (in #323).
  • Remove the experimental label from Sync Stream APIs (in #329).
  • Compose: add composeSyncStream helper method to subscribe to Sync Streams in a composition (in #329).

Full Changelog: v1.10.4...v1.11.0

v1.10.4

09 Feb 11:13
afcd273

Choose a tag to compare

What's Changed

  • [internal] Build :internal:PowerSyncKotlin for tvOS in #315
  • Support latest Kotlin and Ktor versions in #317
  • [internal] Upgrade to Android Gradle Plugin version 9 in #318

Full Changelog: v1.10.2...v1.10.4

v1.10.2

15 Jan 11:24
1731a34

Choose a tag to compare

  • Exceptions that occur while initializing a PowerSync database are now rethrown when the database is used.
  • [Internal] Updated PowerSyncKotlin build to use SKIE's produceDistributableFramework.

v1.10.1

17 Dec 17:23
b71a37b

Choose a tag to compare

Fix XCFramework for Swift SDK to contain version numbers.

v1.10.0

12 Dec 11:09
65faf29

Choose a tag to compare

  • Add appMetadata parameter to PowerSyncDatabase.connect() to include application metadata in
    sync requests. This metadata is merged into sync requests and displayed in PowerSync service logs.

Note: This requires a PowerSync service version >=1.17.0 in order for logs to display metadata.

database.connect(
    connector = connector,
    appMetadata = mapOf(
        "appVersion" to "1.0.0",
        "deviceId" to "device456"
    )
)

v1.9.0

04 Dec 12:52
5c70d5b

Choose a tag to compare

  • Updated user agent string formats to allow viewing version distributions in the new PowerSync dashboard.
  • Sync options: newClientImplementation is now the default.
  • Make androidx.sqlite:sqlite-bundled an API dependency of :core to avoid toolchain warnings.
  • On Apple platforms, use a websocket protocol as a workaround to clients not supporting backpressure in HTTP response streams.
  • Add the new com.powersync:sqlite3mulipleciphers package, which allows encrypting PowerSync databases.

v1.8.1

28 Oct 09:05

Choose a tag to compare

  • Include common project in API docs in #280
  • Add POM description for :common project in #283

Full Changelog: v1.8.0...v1.8.1

v1.8.0

27 Oct 10:39
88204e7

Choose a tag to compare

  • Refactor SDK (#276): com.powersync:powersync-core has an identical API, but now depends on com.powersync:powersync-common where most logic is implemented.
    • POTENTIALLY BREAKING CHANGE: If you were injecting a DatabaseDriverFactory into Koin or Dagger, note that the PowerSyncDatabase() factory method now takes a more generic PersistentConnectionFactory.
    • If you're using PowerSyncDatabase.inMemory, you explicitly have to import com.powersync.inMemory now.
  • Update the PowerSync core extension to version 0.4.8.
  • Add the soft flag to disconnectAndClear() which keeps an internal copy of synced data in the database, allowing faster re-sync if a compatible token is used in the next connect() call.
  • Add the clear parameter to RawTable to run a statement helping the core extension clear raw tables.
  • Swift Driver Additions in #262

Full Changelog: v1.7.0...v1.8.0