From 58c2746e4a175006448a0b045566257d5c63dffd Mon Sep 17 00:00:00 2001 From: Simon Binder Date: Tue, 28 Apr 2026 10:06:36 +0200 Subject: [PATCH 1/2] Prepare 0.4.14 release --- Cargo.lock | 12 ++++++------ Cargo.toml | 2 +- android/build.gradle.kts | 2 +- android/src/prefab/prefab.json | 2 +- crates/core/Cargo.toml | 2 +- UUID.md => docs/UUID.md | 0 docs/built_libraries.md | 35 ++++++++++++++++++++++++++++++++++ powersync-sqlite-core.podspec | 2 +- tool/build_xcframework.sh | 2 +- 9 files changed, 47 insertions(+), 12 deletions(-) rename UUID.md => docs/UUID.md (100%) create mode 100644 docs/built_libraries.md diff --git a/Cargo.lock b/Cargo.lock index 7138fb2f..ed41763c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -412,7 +412,7 @@ checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" [[package]] name = "powersync_core" -version = "0.4.13" +version = "0.4.14" dependencies = [ "bytes", "const_format", @@ -430,7 +430,7 @@ dependencies = [ [[package]] name = "powersync_loadable" -version = "0.4.13" +version = "0.4.14" dependencies = [ "powersync_core", "powersync_sqlite_nostd", @@ -438,7 +438,7 @@ dependencies = [ [[package]] name = "powersync_sqlite" -version = "0.4.13" +version = "0.4.14" dependencies = [ "cc", "powersync_core", @@ -447,7 +447,7 @@ dependencies = [ [[package]] name = "powersync_sqlite_nostd" -version = "0.4.13" +version = "0.4.14" dependencies = [ "bindgen", "num-derive 0.4.2", @@ -456,7 +456,7 @@ dependencies = [ [[package]] name = "powersync_static" -version = "0.4.13" +version = "0.4.14" dependencies = [ "powersync_core", "powersync_sqlite_nostd", @@ -615,7 +615,7 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "sqlite3" -version = "0.4.13" +version = "0.4.14" dependencies = [ "cc", ] diff --git a/Cargo.toml b/Cargo.toml index 43d45a94..d31531a3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -28,7 +28,7 @@ inherits = "release" inherits = "wasm" [workspace.package] -version = "0.4.13" +version = "0.4.14" edition = "2024" authors = ["JourneyApps"] keywords = ["sqlite", "powersync"] diff --git a/android/build.gradle.kts b/android/build.gradle.kts index eff86c7e..96268666 100644 --- a/android/build.gradle.kts +++ b/android/build.gradle.kts @@ -12,7 +12,7 @@ plugins { } group = "com.powersync" -version = "0.4.13" +version = "0.4.14" description = "PowerSync Core SQLite Extension" val localRepo = uri("build/repository/") diff --git a/android/src/prefab/prefab.json b/android/src/prefab/prefab.json index 29682465..934f1f10 100644 --- a/android/src/prefab/prefab.json +++ b/android/src/prefab/prefab.json @@ -2,5 +2,5 @@ "name": "powersync_sqlite_core", "schema_version": 2, "dependencies": [], - "version": "0.4.13" + "version": "0.4.14" } diff --git a/crates/core/Cargo.toml b/crates/core/Cargo.toml index 22e610e1..b10b9b23 100644 --- a/crates/core/Cargo.toml +++ b/crates/core/Cargo.toml @@ -15,7 +15,7 @@ name = "powersync_core" crate-type = ["rlib"] [dependencies] -powersync_sqlite_nostd = { version = "=0.4.13", path = "../sqlite_nostd" } +powersync_sqlite_nostd = { version = "=0.4.14", path = "../sqlite_nostd" } bytes = { version = "1.4", default-features = false } num-traits = { version = "0.2.15", default-features = false } num-derive = "0.3" diff --git a/UUID.md b/docs/UUID.md similarity index 100% rename from UUID.md rename to docs/UUID.md diff --git a/docs/built_libraries.md b/docs/built_libraries.md new file mode 100644 index 00000000..f32a3969 --- /dev/null +++ b/docs/built_libraries.md @@ -0,0 +1,35 @@ +# Built core extension libraries + +This document describes how builds of the PowerSync SQLite core extension are consumed in different PowerSync SDKs. + +## Native + +- [Native SDK](https://github.com/powersync-ja/powersync-native): Compiled from source (as a regular Rust dependency). +- [Dart SDK](https://github.com/powersync-ja/powersync.dart/): Uses build hooks to link dynamic libraries attached to releases. +- [Swift SDK](https://github.com/powersync-ja/powersync-swift): Uses an XCFramework via SwiftPM and this [intermediate repository](https://github.com/powersync-ja/powersync-sqlite-core-swift). +- [Kotlin SDK](https://github.com/powersync-ja/powersync-kotlin): + - On Android, we use cargo-ndk builds published to Maven Central (see the `android/` directory for more). + - On the JVM, we download dynamic libraries attached to releases. + - For Kotlin/Native: + - Older versions only support Apple targets and expect a framework path to be present. Users are responsible for bundling the extension, + we suggest a SwiftPM dependency through the intermediate repository. + - We are migrating towards a setup where we can also support Linux and Windows by linking the core extension staticaly through cinterops. +- [dotnet SDK](https://github.com/powersync-ja/powersync-dotnet): + - On maui/Android, we download the Maven Central asset and extract individual libraries. + - On maui/iOS and maui/macCatalyst: We use the XCFramework downloaded directly from GitHub releases. + - On Desktop platforms, we download a dynamic library attached to releases. +- [JavaScript SDKs](https://github.com/powersync-ja/powersync-js): + - Capacitor: Same as React Native. + - Node: Downloads dynamic libraries attached to releases. We also upload these libraries to npm as part of the package to avoid postinstall scripts. + - React Native: + - Android: Gradle dependency to builds published to Maven Central. + - iOS: We use a CocoaPod dependency downloading the XCFramework. + - Tauri: Depends on the native SDK, building the core extension from source as part of the app. + +## Web + +- Dart: We build the core extension as a static [WebAssembly object file](https://github.com/WebAssembly/tool-conventions/blob/main/Linking.md). + A script in the Dart SDK builds `sqlite3.wasm` and `sqlite3mc.wasm` by linking this file and patching `sqlite3_os_init` to auto-load the extension. +- JavaScript: We have a fork of `wa-sqlite` that statically links the core extension object file and exports `powersync_init_static`. + The web SDK calls `powersync_init_static` before connections are opened. + We also build the core extension for [Emscripten dynamic linking](https://emscripten.org/docs/compiling/Dynamic-Linking.html), but this mode is not currently used. diff --git a/powersync-sqlite-core.podspec b/powersync-sqlite-core.podspec index 5028de08..1f5d0a14 100644 --- a/powersync-sqlite-core.podspec +++ b/powersync-sqlite-core.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'powersync-sqlite-core' - s.version = '0.4.13' + s.version = '0.4.14' s.summary = 'PowerSync SQLite Extension' s.description = <<-DESC PowerSync extension for SQLite. diff --git a/tool/build_xcframework.sh b/tool/build_xcframework.sh index ba6f6341..133ee8bb 100755 --- a/tool/build_xcframework.sh +++ b/tool/build_xcframework.sh @@ -29,7 +29,7 @@ TARGETS=( aarch64-apple-tvos-sim x86_64-apple-tvos ) -VERSION=0.4.13 +VERSION=0.4.14 function generatePlist() { min_os_version=0 From 407fba2efdfc2adfbf6853a704392a8e4cd7c3df Mon Sep 17 00:00:00 2001 From: Simon Binder Date: Tue, 28 Apr 2026 10:31:38 +0200 Subject: [PATCH 2/2] typo --- docs/built_libraries.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/built_libraries.md b/docs/built_libraries.md index f32a3969..dffd2385 100644 --- a/docs/built_libraries.md +++ b/docs/built_libraries.md @@ -13,7 +13,7 @@ This document describes how builds of the PowerSync SQLite core extension are co - For Kotlin/Native: - Older versions only support Apple targets and expect a framework path to be present. Users are responsible for bundling the extension, we suggest a SwiftPM dependency through the intermediate repository. - - We are migrating towards a setup where we can also support Linux and Windows by linking the core extension staticaly through cinterops. + - We are migrating towards a setup where we can also support Linux and Windows by linking the core extension statically through cinterops. - [dotnet SDK](https://github.com/powersync-ja/powersync-dotnet): - On maui/Android, we download the Maven Central asset and extract individual libraries. - On maui/iOS and maui/macCatalyst: We use the XCFramework downloaded directly from GitHub releases.