From 07ada74b00c88e71119df0570555678b8f9d3052 Mon Sep 17 00:00:00 2001 From: Christiaan Landman Date: Wed, 30 Jul 2025 10:50:50 +0200 Subject: [PATCH 1/4] Updated readme to explain fork existence. --- README.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 15fd58a..26dc60d 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,13 @@ # PowerSync SQL.js -This is a minor fork of SQL.js which includes PowerSync. +A specialized fork of SQL.js that combines the power of SQL.js (SQLite compiled to JavaScript via Emscripten) with PowerSync's [Rust core extension](https://github.com/powersync-ja/powersync-sqlite-core). This creates a completely JavaScript-based database solution that enables PowerSync functionality in environments where native dependencies cannot be used. +- No native dependencies required +- Optimized for rapid prototyping and development workflows +- Universal compatibility + +> **Note:** This implementation is intended for development only. For production use, consider native adapters that offer better performance and data integrity guarantees. + +## Why a fork? + +Beyond loading the core extension, minor additions were needed on top of the SQL.js to be compatible with the PowerSync SDKs (for example functionality to expose `lastInsertId` and enabling `FTS5`). These are applied in the form of [git patches](https://github.com/powersync-ja/powersync-sql-js/tree/main/patches). From 89604d49377e1ed9217d971b50d9cfc006db700c Mon Sep 17 00:00:00 2001 From: Christiaan Landman Date: Wed, 30 Jul 2025 11:25:33 +0200 Subject: [PATCH 2/4] Minor wording. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 26dc60d..8b8e279 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # PowerSync SQL.js -A specialized fork of SQL.js that combines the power of SQL.js (SQLite compiled to JavaScript via Emscripten) with PowerSync's [Rust core extension](https://github.com/powersync-ja/powersync-sqlite-core). This creates a completely JavaScript-based database solution that enables PowerSync functionality in environments where native dependencies cannot be used. +A fork of SQL.js (SQLite compiled to JavaScript via Emscripten) that loads the PowerSync's [Rust core extension](https://github.com/powersync-ja/powersync-sqlite-core). This allows PowerSync functionality in environments where native dependencies cannot be used. - No native dependencies required - Optimized for rapid prototyping and development workflows From 371c973ae95ec7256f85f32ae03ca530aaf03bae Mon Sep 17 00:00:00 2001 From: Christiaan Landman Date: Thu, 31 Jul 2025 15:57:21 +0200 Subject: [PATCH 3/4] Added support for binding values that are ArrayBuffers. This is needed downstream for the Rust sync implementation. --- .changeset/nine-worms-love.md | 5 +++++ patches/powersync-update-002.patch | 16 ++++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 .changeset/nine-worms-love.md create mode 100644 patches/powersync-update-002.patch diff --git a/.changeset/nine-worms-love.md b/.changeset/nine-worms-love.md new file mode 100644 index 0000000..0c79039 --- /dev/null +++ b/.changeset/nine-worms-love.md @@ -0,0 +1,5 @@ +--- +"@powersync/sql-js": patch +--- + +Added support for binding values that are ArrayBuffers. This is needed downstream for the Rust sync implementation. diff --git a/patches/powersync-update-002.patch b/patches/powersync-update-002.patch new file mode 100644 index 0000000..e321dc3 --- /dev/null +++ b/patches/powersync-update-002.patch @@ -0,0 +1,16 @@ +diff --git a/src/api.js b/src/api.js +index c7f102b..2d2d106 100644 +--- a/src/api.js ++++ b/src/api.js +@@ -613,6 +613,11 @@ Module["onRuntimeInitialized"] = function onRuntimeInitialized() { + if (val === null) { + return this.bindNull(pos); + } ++ ++ // Add ArrayBuffer support ++ if (val instanceof ArrayBuffer) { ++ return this.bindBlob(new Uint8Array(val), pos); ++ } + if (val.length != null) { + return this.bindBlob(val, pos); + } From dbea4adc832eddd44323dfc18b45a342642bfbd3 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 31 Jul 2025 14:06:00 +0000 Subject: [PATCH 4/4] Version Packages --- .changeset/nine-worms-love.md | 5 ----- CHANGELOG.md | 6 ++++++ package.json | 2 +- 3 files changed, 7 insertions(+), 6 deletions(-) delete mode 100644 .changeset/nine-worms-love.md diff --git a/.changeset/nine-worms-love.md b/.changeset/nine-worms-love.md deleted file mode 100644 index 0c79039..0000000 --- a/.changeset/nine-worms-love.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@powersync/sql-js": patch ---- - -Added support for binding values that are ArrayBuffers. This is needed downstream for the Rust sync implementation. diff --git a/CHANGELOG.md b/CHANGELOG.md index 2dd77c3..2e7b863 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # @powersync/sql-js +## 0.0.2 + +### Patch Changes + +- 371c973: Added support for binding values that are ArrayBuffers. This is needed downstream for the Rust sync implementation. + ## 0.0.1 ### Patch Changes diff --git a/package.json b/package.json index abf6bf1..fa0c64e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@powersync/sql-js", - "version": "0.0.1", + "version": "0.0.2", "publishConfig": { "registry": "https://registry.npmjs.org/", "access": "public"