Skip to content
263 changes: 164 additions & 99 deletions resources/supported-platforms.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,32 +3,65 @@
description: "Supported platforms and feature availability for each PowerSync Client SDK across mobile, web, and desktop."
---

## <Icon icon="flutter" iconType="solid" size={32}/> Dart/Flutter SDK
Jump to: [Source Databases](#supported-source-databases), [SDK Platforms](#supported-sdk-platforms), [Supported Platforms Policy](#supported-platforms-policy), [SDK Versioning Policy](#sdk-versioning-policy)

| Platform / Feature | Supported? | Notes |
| --- | --- | --- |
| Android | Yes (x86-64, aarch64, armv7) | Requires Flutter |
| iOS | Yes | Requires Flutter |
| macOS | Yes (x86-64, aarch64) | |
| Windows | Yes (x86-64, x86, aarch64) | |
| Linux | Yes (x86-64, x86, aarch64, armv7, riscv64gc) | |
| Web | Yes | Only dart2js is tested, dart2wasm has issues |
| HTTP connection method | Yes | |
| WebSocket connection method | No | |
## Supported Source Databases

## <Icon icon="react" iconType="solid" size={32}/> React Native SDK
Each supported source database has a minimum required version to be compatible with PowerSync.

| Platform / Feature | Supported? | Notes |
| --- | --- | --- |
| React Native | Yes | |
| React Native w/ Expo | Yes | |
| React Native for Web | Yes | |
| React Strict DOM | YMMV - not tested | |
| React Native for Windows | No | |
| HTTP connection method | Yes | Legacy (supported) |
| WebSocket connection method | Yes | Default |
| Database | Version | Notes |
| --- | --- | --- |
| <Icon icon="elephant" iconType="solid" /> PostgreSQL | 11+ | |
| <Icon icon="leaf" iconType="solid" /> MongoDB | 6.0+ | |
| <Icon icon="dolphin" iconType="solid" /> MySQL | 5.7+ | |
| <Icon icon="server" iconType="solid" /> SQL Server (beta) | SQL Server 2019+ (15.0+) or Azure SQL Database | Beta release.<br />Azure SQL Database is always running on the latest version of the SQL Server DB Engine. |
| <Icon icon="database" iconType="solid" /> Convex (alpha) | — | Alpha release. |

## Supported SDK Platforms

Jump to: [<Icon icon="flutter" iconType="solid" /> Dart/Flutter SDK](#dart/flutter-sdk), [<Icon icon="react" iconType="solid" /> React Native SDK](#react-native-sdk), [<Icon icon="js" iconType="solid" /> Javascript SDK](#js/web-sdk), [<Icon icon="c" iconType="solid" /> Capacitor SDK](#capacitor-sdk), [<Icon icon="rust" /> Tauri SDK](#tauri-sdk), [<Icon icon="node-js" /> Node.js SDK](#node-js-sdk), [<Icon icon="android" /> Kotlin SDK](#kotlin-sdk), [<Icon icon="swift" iconType="solid" /> Swift SDK](#swift-sdk), [<Icon icon="microsoft" iconType="solid" /> .NET SDK](#net-sdk), [<Icon icon="rust" /> Rust SDK](#rust-sdk)

### Widespread SDK Platform Support

The versions below are the minimum supported versions across all PowerSync Client SDKs, so you can expect them to work regardless of which SDK you use.
Comment thread
LucDeCaf marked this conversation as resolved.

Note: Some client SDKs may support lower versions than the ones listed here.

| Platform | Version |
| --- | --- |
| <Icon icon="android" /> Android | SDK 24 (Android 7.0) |
| <Icon icon="apple" /> iOS | 15.0 |
| <Icon icon="apple" /> macOS | 14.0 (Sonoma) |

Check warning on line 34 in resources/supported-platforms.mdx

View check run for this annotation

Mintlify / Mintlify Validation (powersync) - vale-spellcheck

resources/supported-platforms.mdx#L34

Did you really mean 'Sonoma'?
| <Icon icon="windows" /> Windows | 10 |
| <Icon icon="linux" /> Linux | glibc 2.34+ |

Check warning on line 36 in resources/supported-platforms.mdx

View check run for this annotation

Mintlify / Mintlify Validation (powersync) - vale-spellcheck

resources/supported-platforms.mdx#L36

Did you really mean 'glibc'?
| <Icon icon="js" /> Web | See [Web Compatibility](#web-compatibility). |

## <Icon icon="js" iconType="solid" size={32}/> JS/Web SDK
### <Icon icon="flutter" iconType="solid" size={24}/> Dart/Flutter SDK

| Platform / Feature | Supported? | Platform Version | Notes |
| --- | --- | --- | --- |
| Android | Yes (x86-64, aarch64, armv7) | SDK 24 (Android 7.0) | Requires Flutter |
| iOS | Yes | 13.0 | Requires Flutter |
| macOS | Yes (x86-64, aarch64) | 12.0 (Monterey) | |
| Windows | Yes (x86-64, x86, aarch64) | 10 | |
| Linux | Yes (x86-64, x86, aarch64, armv7, riscv64gc) | Requires glibc 2.34+ | |

Check warning on line 47 in resources/supported-platforms.mdx

View check run for this annotation

Mintlify / Mintlify Validation (powersync) - vale-spellcheck

resources/supported-platforms.mdx#L47

Did you really mean 'glibc'?
| Web | Yes | OPFS by default, IndexedDB as backup ([see more](/client-sdks/frameworks/flutter-web-support)) | Only dart2js is tested, dart2wasm has issues |
| HTTP connection method | Yes | | |
| WebSocket connection method | No | | |

### <Icon icon="react" iconType="solid" size={24}/> React Native SDK

| Platform / Feature | Supported? | Platform Version | Notes |
| --- | --- | --- | --- |
| React Native | Yes | | |
| React Native w/ Expo | Yes | | |
| React Native for Web | Yes | See [Web Compatibility](#web-compatibility). | |
| React Strict DOM | YMMV - not tested | | |
| React Native for Windows | No | | |
| HTTP connection method | Yes | | |
| WebSocket connection method | Yes | | Default |

### <Icon icon="js" iconType="solid" size={24}/> JS/Web SDK

| Platform / Feature | Supported? | Notes |
| --- | --- | --- |
Expand All @@ -38,97 +71,129 @@
| HTTP connection method | Yes | |
| WebSocket connection method | Yes | |

## <Icon icon="c" iconType="solid" size={32}/> Capacitor SDK
#### Web Compatibility

Requires Capacitor 8 or later. See the [Capacitor v8 upgrade guide](https://capacitorjs.com/docs/updating/8-0) if you are on Capacitor 6 or 7.
PowerSync's web-targeting SDKs use either [IndexedDB](https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API) or [OPFS](https://developer.mozilla.org/en-US/docs/Web/API/File_System_API/Origin_private_file_system) virtual filesystem (VFS) to persist rows on the user's device. On Dart/Flutter, the VFS is chosen automatically. On JS, the developer can choose which VFS strategy they prefer. Each VFS enjoys differing levels of platform support across browsers / devices / operating systems.

| Platform / Feature | Supported? | Notes |
| --- | --- | --- |
| iOS | Yes (15.0+) | Uses native SQLite via Capacitor Community SQLite. Both Swift Package Manager and CocoaPods are supported. |
| Android | Yes (API level 24+) | Uses native SQLite via Capacitor Community SQLite. |
| Web | Yes | Uses WASQLite via the PowerSync Web SDK. |
| Electron | Yes | Uses WASQLite via the PowerSync Web SDK. |
| HTTP connection method | Yes | |
| WebSocket connection method | Yes | |
| VFS | Chrome | Chrome incognito | Firefox | Firefox incognito | Safari | Safari incognito | iOS Webkit | Android Chrome |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| IDBBatchAtomicVFS | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| OPFSCoopSyncVFS | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | ✅ |
| AccessHandlePoolVFS | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | ✅ |
| OPFSWriteAheadVFS | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |

## <Icon icon="/logo/tauri.svg" iconType="solid" size={32}/> Tauri SDK

| Platform / Feature | Supported? | Notes |
| --- | --- | --- |
| Windows | Yes | Untested. |
| macOS | Yes | |
| Linux | Yes | |
| iOS | Yes | Untested. |
| Android | Yes | Untested. |
| HTTP connection method | Yes | Connections must currently be managed through Rust. |
| WebSocket connection method | No | |
### <Icon icon="c" iconType="solid" size={24}/> Capacitor SDK

Requires Capacitor 8 or later. See the [Capacitor v8 upgrade guide](https://capacitorjs.com/docs/updating/8-0) if you are on Capacitor 6 or 7.

## <Icon icon="node-js" iconType="solid" size={32}/> Node.js SDK
| Platform / Feature | Supported? | Platform Version | Notes |
| --- | --- | --- | --- |
| iOS | Yes | 15.0 | Uses native SQLite via Capacitor Community SQLite. |
| Android | Yes | SDK 24 (Android 7.0) | Uses native SQLite via Capacitor Community SQLite. |
| Web | Yes | See [Web Compatibility](#web-compatibility). | Uses WASQLite via the PowerSync Web SDK. |
| Electron | Yes | Electron 28+ (TO BE VERIFIED) | Uses WASQLite via the PowerSync Web SDK. |
| HTTP connection method | Yes | | |
| WebSocket connection method | Yes | | |

### <Icon icon="/logo/tauri.svg" iconType="solid" size={24}/> Tauri SDK

| Platform / Feature | Supported? | Platform Version | Notes |
| --- | --- | --- | --- |
| Windows | Yes | | Untested. |
| macOS | Yes | | |
| Linux | Yes | | |
| iOS | Yes | | Untested. |
| Android | Yes | | Untested. |
| HTTP connection method | Yes | | Connections must currently be managed through Rust. |
| WebSocket connection method | No | | |

### <Icon icon="node-js" iconType="solid" size={24}/> Node.js SDK

The Node SDK supports all [non-EOL Node.js versions](https://nodejs.org/en/about/previous-releases#looking-for-the-latest-release-of-a-version-branch) (i.e. current and LTS).

| Platform / Feature | Supported? | Platform Version | Notes |
| --- | --- | --- | --- |
| macOS | Yes | 14.0 | |
| Linux | Yes | glibc 2.34+ | |

Check warning on line 117 in resources/supported-platforms.mdx

View check run for this annotation

Mintlify / Mintlify Validation (powersync) - vale-spellcheck

resources/supported-platforms.mdx#L117

Did you really mean 'glibc'?
| Windows | Yes | 10 | |
| HTTP connection method | Yes | | |
| WebSocket connection method | Yes | | |

### <Icon icon="android" iconType="solid" size={24}/> Kotlin SDK

| Platform / Feature | Supported? | Platform Version | Notes |
| --- | --- | --- | --- |
| Android | Yes (x86-64, x86, aarch64, armv7) | | |
| Android native | No | | |
| iOS | Yes (aarch64 device and simulator) | | |
| macOS (native) | Yes (aarch64) | | |
| macOS catalyst (native) | No | | Blocked on [KT-40442: Support building Kotlin/Native for Mac Catalyst (x86-64 and arm64)](https://youtrack.jetbrains.com/issue/KT-40442/Support-building-Kotlin-Native-for-Mac-Catalyst-x86-64-and-arm64) |
| watchOS | Yes (aarch64 device, armv8 32-bit pointers ABI, aarch64 simulator) | | |
| tvOS | Yes (aarch64 device, aarch64 simulator) | | |
| visionOS | No | | Blocked on [KT-59571: Add support for visionOS SDK](https://youtrack.jetbrains.com/issue/KT-59571/Add-support-for-visionOS-SDK) |
| Windows (JVM) | Yes (x86-64 only) | | |
| Linux (JVM) | Yes (x86-64, aarch64) | | |
| macOS (JVM) | Yes (x86-64, aarch64) | | |
| Linux (native) | No | | Maybe soon |
| Windows (native) | No | | Maybe soon |
| JS | No | | |
| WebAssembly | No | | |
| HTTP connection method | Yes | | |
| WebSocket connection method | Yes | | Note: Only as an automated fallback for clients without backpressure support. |

### <Icon icon="swift" iconType="solid" size={24}/> Swift SDK

| Platform / Feature | Supported? | Platform Version | Notes |
| --- | --- | --- | --- |
| macOS | Yes | 12.0 (Monterey) | |
| iOS | Yes | | 15.0 |
| watchOS | Yes | | 9.0 |
| iPadOS | Yes | 15.0 | |
| tvOS | Yes | 15.0 | Added in v1.11.0 |
| macOS Catalyst | No | | Please [reach out](https://github.com/powersync-ja/powersync-swift/issues/138) if you're interested. |
| visionOS | No | | Please [reach out](https://github.com/powersync-ja/powersync-swift/issues/138) if you're interested. |
| Non-apple targets (Linux, Windows) | No | | No good way to link PowerSync |
| HTTP connection method | Yes | | |
| WebSocket connection method | No | | |

### <Icon icon="microsoft" iconType="solid" size={24}/> .NET SDK

| Platform / Feature | Supported? | Platform Version | Notes |
| --- | --- | --- | --- |
| WPF | Yes | Windows 10 | |
| MAUI for Android | Yes | SDK 24 (Android 7.0) | |
| MAUI for iOS | Yes | 14.0 | |
| MAUI for Windows | Yes | 10 | |
| MAUI for Mac Catalyst | Yes | Catalyst 17.0 (macOS 14.0) | Added in `PowerSync.Maui` 0.1.2. |
| Winforms | YMMV - not tested | | |
| CLI Windows | Yes (x64, ARM) | | |
| CLI Mac | Yes (x64, ARM) | | |
| CLI Linux | Yes (x64, ARM) | | |
| Avalonia UI | YMMV - not tested | | |
| HTTP connection method | Yes | | |
| WebSocket connection method | No | | |

### <Icon icon="rust" iconType="solid" size={24}/> Rust SDK

| Platform / Feature | Supported? | Notes |
| --- | --- | --- |
| macOS | Yes | |
| Linux | Yes | |
| Windows | Yes | |
| All | Yes | The SDK supports all `std` Rust targets, but is currently only tested on Linux. |
| HTTP connection method | Yes | |
| WebSocket connection method | Yes | |
| WebSocket connection method | No | |

## <Icon icon="android" iconType="solid" size={32}/> Kotlin SDK
## Supported Platforms Policy

| Platform / Feature | Supported? | Notes |
| --- | --- | --- |
| Android | Yes (x86-64, x86, aarch64, armv7) | |
| Android native | No | |
| iOS | Yes (aarch64 device and simulator) | |
| macOS (native) | Yes (aarch64) | |
| macOS catalyst (native) | No | Blocked on [KT-40442: Support building Kotlin/Native for Mac Catalyst (x86-64 and arm64)](https://youtrack.jetbrains.com/issue/KT-40442/Support-building-Kotlin-Native-for-Mac-Catalyst-x86-64-and-arm64) |
| watchOS | Yes (aarch64 device, armv8 32-bit pointers ABI, aarch64 simulator) | |
| tvOS | Yes (aarch64 device, aarch64 simulator) | |
| visionOS | No | Blocked on [KT-59571: Add support for visionOS SDK](https://youtrack.jetbrains.com/issue/KT-59571/Add-support-for-visionOS-SDK) |
| Windows (JVM) | Yes (x86-64 only) | |
| Linux (JVM) | Yes (x86-64, aarch64) | |
| macOS (JVM) | Yes (x86-64, aarch64) | |
| Linux (native) | No | Maybe soon |
| Windows (native) | No | Maybe soon |
| JS | No | |
| WebAssembly | No | |
| HTTP connection method | Yes | |
| WebSocket connection method | Yes | Note: Only as an automated fallback for clients without backpressure support. |
PowerSync supports a wide number of target platforms across its many SDKs. We aim to support as many platforms and versions as are useful for users and practical to maintain.

## <Icon icon="swift" iconType="solid" size={32}/> Swift SDK
### When we raise the minimum version

| Platform / Feature | Supported? | Notes |
| --- | --- | --- |
| macOS | Yes | |
| iOS | Yes | |
| watchOS | Yes | |
| iPadOS | Yes | |
| tvOS | Yes | Added in v1.11.0 |
| macOS Catalyst | No | Please [reach out](https://github.com/powersync-ja/powersync-swift/issues/138) if you're interested. |
| visionOS | No | Please [reach out](https://github.com/powersync-ja/powersync-swift/issues/138) if you're interested. |
| Non-apple targets (Linux, Windows) | No | No good way to link PowerSync |
| HTTP connection method | Yes | |
| WebSocket connection method | No | |
In general, PowerSync aims to support any platform version that still receives security updates from the platform provider. For platforms that follow an LTS and Current release model, this means we aim to support all active LTS releases along with the Current release.

## <Icon icon="microsoft" iconType="solid" size={32}/> .NET SDK
Supporting every version that fits the above criteria is [not always feasible](#exceptions). When we cannot support all of them, we prioritise support for newer versions over older versions to ease maintenance. We will occasionally maintain support for an older version if an enterprise customer requires it.

| Platform / Feature | Supported? | Notes |
| --- | --- | --- |
| WPF | Yes | |
| MAUI | Android, iOS, Mac Catalyst, Windows | Mac Catalyst added in `PowerSync.Maui` 0.1.2. |
| Winforms | YMMV - not tested | |
| CLI Windows | Yes (x64, ARM) | |
| CLI Mac | Yes (x64, ARM) | |
| CLI Linux | Yes (x64, ARM) | |
| Avalonia UI | YMMV - not tested | |
| HTTP connection method | Yes | |
| WebSocket connection method | No | |
### Exceptions

## <Icon icon="rust" iconType="solid" size={32}/> Rust SDK
- **Dart/Flutter**: The Dart/Flutter team only supports the latest stable release (three-month cycle). We don't follow this release schedule, since dropping support for versions only three months old is undesirable. For the Dart/Flutter SDK's minimum Dart SDK version, see [pub.dev](https://pub.dev/packages/powersync/versions) / the project's [pubspec.yaml](https://github.com/powersync-ja/powersync.dart/blob/main/pubspec.yaml#L6).

- **Android**: Several of our SDKs require [AndroidX](https://developer.android.com/jetpack/androidx/versions) libraries. We set our minimum to the current AndroidX default `minSdk` (which AndroidX picks to cover ~99% of Play Store users), except in cases where other factors force a higher `minSdk`.

| Platform / Feature | Supported? | Notes |
| --- | --- | --- |
| All | Yes | The SDK supports all `std` Rust targets, but is currently only tested on Linux. |
| HTTP connection method | Yes | |
| WebSocket connection method | No | |