Skip to content

Experiment: Unify PowerSync.Maui and PowerSync.Common - #87

Draft
LucDeCaf wants to merge 1 commit into
mainfrom
poc/remove-maui
Draft

Experiment: Unify PowerSync.Maui and PowerSync.Common#87
LucDeCaf wants to merge 1 commit into
mainfrom
poc/remove-maui

Conversation

@LucDeCaf

@LucDeCaf LucDeCaf commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

This PR shows off a potential path for unifying PowerSync.Common and PowerSync.Maui into the same package.

While working on the Uno Platform demo integration, I started wondering why we needed a separate package for MAUI/mobile at all. I decided to ask Claude Code if it could create a POC of what it would look like to remove PowerSync.Maui entirely and to fold everything into Common. The result is this PR.

If we go down this route (either in this PR or in a future one), we would likely make one last release of PowerSync.Maui marking it as deprecated and turning it into a package reference for PowerSync.Common.

Features

  • All native libraries are now referenced directly by Common. You no longer need the dedicated Maui package for mobile targets; as a result, the Maui package has been removed.
    • Libraries are not included for builds that they aren't needed in, so the bundle size should be about optimal.
  • powersync-sqlite-core.xcframework has been massively stripped down (~135 MB => 3.8 MB uncompressed); this change will probably escape from this PR.
  • Removed some duplicate native libraries in runtimes.

Blockers

  • The code is currently unreviewed.
  • We need to perform testing on a physical iOS and Android device.
  • Need to benchmark implementation startup time (probably not that important).
  • Provide a nice path for moving off of PowerSync.Maui.
  • This would have to be a major version release.

AI Disclaimer

The code in this PR is 100% AI generated and is not intended to be merged.
While I directed and corrected the LLM into producing an output I like, I have only taken a cursory look at the code itself and have not performed thorough review. This is intended as an experiment to see what a unified package would look like and to analyse what problems it could potentially cause.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant