Skip to content

Commit 46462a7

Browse files
authored
Polish (#151)
* Updated feature list / as snippet * Flutter installation instructions * React Native installation instructions * Update all SDKs * microsoft icon for .net * More polish * react native fixes
1 parent 2cbde9c commit 46462a7

21 files changed

+322
-325
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ We use the following icons for the SDKs and backend databases:
5050
- Kotlin: `icon="k"`
5151
- Swift: `icon="swift"`
5252
- Node.js: `icon="node-js"`
53-
- .NET: `icon="wave-sine"`
53+
- .NET: `icon="microsoft"`
5454

5555
#### Some useful references:
5656
- Writing content: https://mintlify.com/docs/page

client-sdk-references/dotnet.mdx

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ description: "SDK reference for using PowerSync in .NET clients."
44
sidebarTitle: Overview
55
---
66

7+
import DotNetInstallation from '/snippets/dotnet/installation.mdx';
8+
79
<CardGroup>
810
<Card title="PowerSync SDK on NuGet" icon="nuget" href="https://www.nuget.org/packages/PowerSync.Common/">
911
This SDK is distributed via NuGet [\[External link\].](https://www.nuget.org/packages/PowerSync.Common/)
@@ -22,6 +24,10 @@ sidebarTitle: Overview
2224
</Card>
2325
</CardGroup>
2426

27+
<Warning>
28+
This SDK is currently in an [**alpha** release](/resources/feature-status). It is not suitable for production use as breaking changes may still occur.
29+
</Warning>
30+
2531
## Supported Frameworks and Targets
2632

2733
The PowerSync .NET SDK supports:
@@ -44,15 +50,7 @@ For more details, please refer to the package [Readme](https://github.com/powers
4450

4551
## Quickstart
4652

47-
To start using PowerSync in a .NET client, install the package:
48-
49-
```bash
50-
dotnet add package PowerSync.Common --prerelease
51-
```
52-
53-
<Info>
54-
Add `--prerelease` while this package is in alpha.
55-
</Info>
53+
<DotNetInstallation />
5654

5755
Next, make sure that you have:
5856

client-sdk-references/flutter.mdx

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ description: "Full SDK reference for using PowerSync in Flutter/Dart clients"
44
sidebarTitle: Overview
55
---
66

7+
import SdkFeatures from '/snippets/sdk-features.mdx';
8+
import FlutterInstallation from '/snippets/flutter/installation.mdx';
9+
710
<CardGroup>
811
<Card title="PowerSync SDK on pub.dev" icon="cube" href="https://pub.dev/packages/powersync">
912
The SDK is distributed via pub.dev [[External link].](https://pub.dev/packages/powersync)
@@ -21,20 +24,15 @@ sidebarTitle: Overview
2124

2225
### SDK Features
2326

24-
* Provides real-time streaming of database changes.
25-
* Offers direct access to the SQLite database, enabling the use of SQL on both client and server sides.
26-
* Operations are asynchronous by default, ensuring the user interface remains unblocked.
27-
* Supports concurrent database operations, allowing one write and multiple reads simultaneously.
28-
* Enables subscription to queries for receiving live updates.
29-
* Eliminates the need for client-side database migrations as these are managed automatically.
27+
<SdkFeatures />
3028

3129
<Info>
32-
Web support is currently in an alpha release. Refer to [Flutter Web Support (Alpha)](/client-sdk-references/flutter/flutter-web-support) for more details.
30+
Web support is currently in a beta release. Refer to [Flutter Web Support](/client-sdk-references/flutter/flutter-web-support) for more details.
3331
</Info>
3432

3533
## Installation
3634

37-
See the [SDK's README](https://pub.dev/packages/powersync#getting-started) for installation instructions.
35+
<FlutterInstallation />
3836

3937
## Getting Started
4038

client-sdk-references/javascript-web.mdx

Lines changed: 5 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ description: "Full SDK reference for using PowerSync in JavaScript Web clients"
44
sidebarTitle: Overview
55
---
66

7+
import SdkFeatures from '/snippets/sdk-features.mdx';
8+
import JavaScriptWebInstallation from '/snippets/javascript-web/installation.mdx';
9+
710
<CardGroup>
811
<Card title="PowerSync SDK on NPM" icon="npm" href="https://www.npmjs.com/package/@powersync/web">
912
This SDK is distributed via NPM [\[External link\].](https://www.npmjs.com/package/@powersync/web)
@@ -24,28 +27,11 @@ sidebarTitle: Overview
2427

2528
### SDK Features
2629

27-
* Provides real-time streaming of database changes.
28-
* Offers direct access to the SQLite database, enabling the use of SQL on both client and server sides.
29-
* Operations are asynchronous by default, ensuring the user interface remains unblocked.
30-
* Enables subscription to queries for receiving live updates.
31-
* Eliminates the need for client-side database migrations as these are managed automatically.
32-
* Allows using PowerSync between [multiple tabs](/client-sdk-references/javascript-web/usage-examples#multiple-tab-support)
30+
<SdkFeatures />
3331

3432
## Installation
3533

36-
See the [SDK's README](https://www.npmjs.com/package/@powersync/web) for installation instructions.
37-
38-
<Info>
39-
**Some peer dependencies are required.**
40-
41-
**Note**: As of @powersync/web@1.4.0, polyfills are bundled in the SDK and are no longer required.
42-
43-
See the [Readme](https://www.npmjs.com/package/@powersync/web#installation) for the necessary peer dependencies that need to be installed.
44-
45-
By default this SDK connects to a PowerSync instance via WebSocket (from @powersync/web@1.6.0) or HTTP stream (before @powersync/web@1.6.0).
46-
47-
* See the [Developer Notes](/client-sdk-references/javascript-web#developer-notes) section below for details about connecting with either method.
48-
</Info>
34+
<JavaScriptWebInstallation />
4935

5036
## Getting Started
5137

client-sdk-references/kotlin-multiplatform.mdx

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@ title: "Kotlin Multiplatform (Beta)"
33
sidebarTitle: Overview
44
---
55

6+
import SdkFeatures from '/snippets/sdk-features.mdx';
7+
import KotlinMultiplatformInstallation from '/snippets/kotlin-multiplatform/installation.mdx';
8+
69
<CardGroup>
710
<Card title="PowerSync SDK on Maven Central" icon="npm" href="https://central.sonatype.com/artifact/com.powersync/core">
811
The PowerSync KMP SDK is distributed via Maven Central [[External link].](https://central.sonatype.com/artifact/com.powersync/core)
@@ -24,18 +27,13 @@ sidebarTitle: Overview
2427

2528
### SDK Features
2629

27-
* Provides real-time streaming of database changes.
28-
* Offers direct access to the SQLite database, enabling the use of SQL on both client and server sides.
29-
* Operations are asynchronous by default, ensuring the user interface remains unblocked.
30-
* Supports concurrent database operations, allowing one write and multiple reads simultaneously.
31-
* Enables subscription to queries for receiving live updates.
32-
* Eliminates the need for client-side database migrations as these are managed automatically.
30+
<SdkFeatures />
3331

3432
Supported targets: Android, iOS and Desktop.
3533

3634
## Installation
3735

38-
See the [SDK's README](https://github.com/powersync-ja/powersync-kotlin?tab=readme-ov-file#installation) for installation instructions.
36+
<KotlinMultiplatformInstallation />
3937

4038
<Info>
4139
**JVM compatibility for Desktop**

client-sdk-references/node.mdx

Lines changed: 10 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ description: "SDK reference for using PowerSync in Node.js clients."
44
sidebarTitle: Overview
55
---
66

7+
import SdkFeatures from '/snippets/sdk-features.mdx';
8+
import NodeInstallation from '/snippets/node/installation.mdx';
9+
710
<Note>
811
This page describes the PowerSync _client_ SDK for Node.js.
912
If you're interested in using PowerSync for your Node.js backend, no special package is required.
@@ -28,39 +31,17 @@ sidebarTitle: Overview
2831
</Card>
2932
</CardGroup>
3033

31-
## SDK Features
34+
<Warning>
35+
This SDK is currently in an [**alpha** release](/resources/feature-status). It is not suitable for production use as breaking changes may still occur.
36+
</Warning>
37+
38+
### SDK Features
3239

33-
* Provides real-time streaming of database changes.
34-
* Offers direct access to the SQLite database, enabling the use of SQL on both client and server sides.
35-
* Operations run on a background worker and are asynchronous by default, enabling concurrent queries.
36-
* Enables subscription to queries for receiving live updates.
37-
* Eliminates the need for client-side database migrations as these are managed automatically.
40+
<SdkFeatures />
3841

3942
## Quickstart
4043

41-
To start using PowerSync in a Node client, first add the dependencies:
42-
43-
<Tabs>
44-
<Tab title="npm">
45-
```bash
46-
npm install @powersync/node
47-
```
48-
</Tab>
49-
<Tab title="yarn">
50-
```bash
51-
yarn add @powersync/node
52-
```
53-
</Tab>
54-
<Tab title="pnpm">
55-
```bash
56-
pnpm install @powersync/node
57-
```
58-
</Tab>
59-
</Tabs>
60-
61-
Depending on the package manager used, you might have to approve install scripts.
62-
PowerSync currently requires install scripts on the `@powersync/node` and `@powersync/better-sqlite3` packages
63-
to download native addons.
44+
<NodeInstallation />
6445

6546
Next, make sure that you have:
6647

client-sdk-references/react-native-and-expo.mdx

Lines changed: 6 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ description: "Full SDK reference for using PowerSync in React Native clients"
44
sidebarTitle: "Overview"
55
---
66

7+
import SdkFeatures from '/snippets/sdk-features.mdx';
8+
import ReactNativeInstallation from '/snippets/react-native/installation.mdx';
9+
710
<CardGroup>
811
<Card title="PowerSync SDK on NPM" icon="npm" href="https://www.npmjs.com/package/@powersync/react-native">
912
This SDK is distributed via NPM [[External link].](https://www.npmjs.com/package/@powersync/react-native)
@@ -18,36 +21,15 @@ Full API reference for the PowerSync SDK [[External link].](https://powersync-ja
1821
Gallery of example projects/demo apps built with React Native and PowerSync.
1922
</Card>
2023
</CardGroup>
24+
2125
### SDK Features
2226

23-
* Provides real-time streaming of database changes.
24-
* Offers direct access to the SQLite database, enabling the use of SQL on both client and server sides.
25-
* Operations are asynchronous by default, ensuring the user interface remains unblocked.
26-
* Supports concurrent database operations, allowing one write and multiple reads simultaneously.
27-
* Enables subscription to queries for receiving live updates.
28-
* Eliminates the need for client-side database migrations as these are managed automatically.
27+
<SdkFeatures />
2928

3029
## Installation
3130

32-
See the [SDK's README](https://www.npmjs.com/package/@powersync/react-native) for installation instructions.
33-
34-
<Note>
35-
**PowerSync is not compatible with Expo Go.**
36-
37-
PowerSync uses a native plugin and is therefore only compatible with Expo Dev Builds.
38-
</Note>
31+
<ReactNativeInstallation />
3932

40-
<Info>
41-
**Some peer dependencies and polyfills are required.**
42-
43-
**Note**: As of @powersync/react-native@1.9.0, polyfills are bundled in the SDK and are no longer required ([Async Iterator](https://www.npmjs.com/package/@powersync/react-native#babel-plugins-watched-queries) support being the only exception).
44-
45-
By default this SDK connects to a PowerSync instance via WebSocket (from @powersync/react-native@1.11.0) or HTTP stream (before @powersync/react-native@1.11.0). Different polyfill configurations are required for each method.
46-
47-
* See the [Readme](https://www.npmjs.com/package/@powersync/react-native#installation) for the necessary peer dependencies and polyfills.
48-
* See the [Developer Notes](/client-sdk-references/react-native-and-expo#developer-notes) section below for details about connecting with either method.
49-
* Also see this section for additional development requirements on Android and iOS.
50-
</Info>
5133

5234
## Getting Started
5335

client-sdk-references/swift.mdx

Lines changed: 7 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@ title: "Swift (Beta)"
33
sidebarTitle: "Overview"
44
---
55

6+
import SdkFeatures from '/snippets/sdk-features.mdx';
7+
import SwiftInstallation from '/snippets/swift/installation.mdx';
8+
69
<CardGroup cols={3}>
710
<Card title="Source Code" icon="github" href="https://github.com/powersync-ja/powersync-swift/">
811
Refer to the powersync-swift repo on GitHub.
@@ -19,67 +22,17 @@ sidebarTitle: "Overview"
1922
This SDK is currently in a [**beta** release](/resources/feature-status). It is suitable for production use provided you've tested your specific use cases.
2023
</Note>
2124

22-
## Kotlin Multiplatform -> Native Swift SDK
23-
24-
The PowerSync Swift SDK currently makes use of the [PowerSync Kotlin Multiplatform SDK](https://github.com/powersync-ja/powersync-kotlin) with the API tool [SKIE](https://skie.touchlab.co/) and KMMBridge under the hood to help generate and publish a Swift package. We will move to an entirely Swift native SDK in v1 and do not expect there to be any breaking changes.
25+
## Kotlin Multiplatform -> Swift SDK
2526

26-
<Tip>
27-
**Demo App**
27+
The PowerSync Swift SDK currently makes use of the [PowerSync Kotlin Multiplatform SDK](https://github.com/powersync-ja/powersync-kotlin) with the API tool [SKIE](https://skie.touchlab.co/) and KMMBridge under the hood to help generate and publish a Swift package. As we move to V1, we are aiming to further reduce or even eliminate the Kotlin Multiplatform dependency, enabling us to fully leverage Swift's native features and libraries. Our ultimate goal is to deliver a Swift-centric experience for developers while maintaining compatibility with the APIs introduced in the Beta to avoid any breaking changes.
2828

29-
We recommend the [Supabase To-Do List Demo](https://github.com/powersync-ja/powersync-swift/tree/main/Demo) app as a starting point for using the Swift SDK. See the README for details to run it.
30-
</Tip>
3129

3230
### SDK Features
33-
34-
* Provides real-time streaming of database changes.
35-
36-
* Offers direct access to the SQLite database, enabling the use of SQL on both client and server sides.
37-
38-
* Operations are asynchronous by default, ensuring the user interface remains unblocked.
39-
40-
* Supports concurrent database operations, allowing one write and multiple reads simultaneously.
41-
42-
* Enables subscription to queries for receiving live updates.
43-
44-
* Eliminates the need for client-side database migrations as these are managed automatically.
31+
<SdkFeatures />
4532

4633
## Installation
4734

48-
1. Using `Package.swift:`
49-
50-
```swift
51-
let package = Package(
52-
...
53-
dependencies: [
54-
...
55-
.package(
56-
url: "https://github.com/powersync-ja/powersync-swift",
57-
// Exact version required while still in beta
58-
exact: "<version>"
59-
),
60-
],
61-
targets: [
62-
.target(
63-
name: "YourTargetName",
64-
dependencies: [
65-
.product(
66-
name: "PowerSync",
67-
package: "powersync-swift"
68-
),
69-
]
70-
)
71-
]
72-
)
73-
```
74-
75-
2. Using Xcode:
76-
77-
1. Follow [this](https://developer.apple.com/documentation/xcode/adding-package-dependencies-to-your-app#Add-a-package-dependency) guide to add a package to your project.
78-
2. When searching for the package use [https://github.com/powersync-ja/powersync-swift.git](https://github.com/powersync-ja/powersync-swift.git) as the URL and include the exact version e.g. `1.0.0-Beta.x` as shown below:
79-
80-
<Frame>
81-
<img src="/images/Swift-Xcode.png"></img>
82-
</Frame>
35+
<SwiftInstallation />
8336

8437
## Getting Started
8538

0 commit comments

Comments
 (0)