Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 7 additions & 11 deletions client-sdks/reference/dotnet.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: ".NET SDK (alpha)"
title: ".NET SDK (beta)"
description: "Full SDK guide for using PowerSync in .NET clients."
sidebarTitle: "SDK Reference"
---
Expand Down Expand Up @@ -32,9 +32,9 @@
</Card>
</CardGroup>

<Warning>
This SDK is currently in an [**alpha** release](/resources/feature-status). It is not suitable for production use as breaking changes may still occur.
</Warning>
<Note>
This SDK is currently in a [**beta** release](/resources/feature-status). It is production-ready for tested use cases. APIs are stable and breaking changes will be communicated clearly.
</Note>

## Supported Frameworks and Targets

Expand All @@ -46,7 +46,7 @@
* **WPF**: Windows desktop applications

**Current Limitations**:
* Blazor (web) platforms are not yet supported.

Check warning on line 49 in client-sdks/reference/dotnet.mdx

View check run for this annotation

Mintlify / Mintlify Validation (powersync) - vale-spellcheck

client-sdks/reference/dotnet.mdx#L49

Did you really mean 'Blazor'?

For more details, please refer to the package [README](https://github.com/powersync-ja/powersync-dotnet/tree/main?tab=readme-ov-file).

Expand Down Expand Up @@ -74,7 +74,7 @@

#### Schema definition syntax

There are two supported syntaxes for defining the schema:

Check warning on line 77 in client-sdks/reference/dotnet.mdx

View check run for this annotation

Mintlify / Mintlify Validation (powersync) - vale-spellcheck

client-sdks/reference/dotnet.mdx#L77

Did you really mean 'syntaxes'?

**Attribute-based (recommended)** — Annotate a C# class with `[Table]`, `[Column]`, and `[Index]` attributes. The same class can then be used directly as the result type in queries, so you define your data structure once:

Expand Down Expand Up @@ -424,19 +424,15 @@
<Tabs>
<Tab title="Common">
```bash
dotnet add package PowerSync.Common --prerelease
dotnet add package PowerSync.Common
```
</Tab>

<Tab title="MAUI">
```bash
dotnet add package PowerSync.Common --prerelease
dotnet add package PowerSync.Maui --prerelease
dotnet add package PowerSync.Common
dotnet add package PowerSync.Maui
```
</Tab>
</Tabs>

<Note>
Add `--prerelease` while this package is in alpha. To install a specific version, use `--version` instead: `dotnet add package PowerSync.Common --version 0.0.6-alpha.1`
</Note>

2 changes: 1 addition & 1 deletion configuration/app-backend/client-side-integration.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ For an example implementation of a PowerSync 'backend connector', see the SDK gu
<Card title="Node.js (beta)" icon="node-js" href="/client-sdks/reference/node#3-integrate-with-your-backend" />
<Card title="Kotlin" icon="k" href="/client-sdks/reference/kotlin#3-integrate-with-your-backend" />
<Card title="Swift" icon="swift" href="/client-sdks/reference/swift#3-integrate-with-your-backend" />
<Card title=".NET (alpha)" icon="microsoft" href="/client-sdks/reference/dotnet#3-integrate-with-your-backend" />
<Card title=".NET (beta)" icon="microsoft" href="/client-sdks/reference/dotnet#3-integrate-with-your-backend" />
</CardGroup>

## More Examples
Expand Down
2 changes: 1 addition & 1 deletion intro/examples.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@
- Demonstrates [Data Encryption](/usage/use-case-examples/data-encryption) using SQLite3MultipleCiphers
- [Counter App](https://github.com/powersync-community/swift-supabase-counter#readme)
</Accordion>
<Accordion title=".NET (alpha)" icon="microsoft">
<Accordion title=".NET (beta)" icon="microsoft">
#### Examples

- [CLI Application](https://github.com/powersync-ja/powersync-dotnet/tree/main/demos/CommandLine#readme)
Expand Down Expand Up @@ -209,7 +209,7 @@
<Accordion title="Flutter Projects" icon="flutter">
- [Flutter Instagram Clone with Supabase + Firebase by @Gambley1](https://github.com/Gambley1/flutter-instagram-offline-first-clone)
- [Jepsen PowerSync Testing - Formal consistency validation framework by @nurturenature](https://github.com/nurturenature/jepsen-powersync)
- [Bavard -An Eloquent-inspired ORM for Dart/Flutter by @ILDaviz](https://ildaviz.github.io/bavard/)

Check warning on line 212 in intro/examples.mdx

View check run for this annotation

Mintlify / Mintlify Validation (powersync) - vale-spellcheck

intro/examples.mdx#L212

Did you really mean 'Bavard'?
</Accordion>
<Accordion title="JavaScript & TypeScript Projects" icon="js">
- [SolidJS Hooks for PowerSync Queries by @aboviq](https://github.com/aboviq/powersync-solid)
Expand Down
2 changes: 1 addition & 1 deletion maintenance-ops/production-readiness-guide.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
- [Web](https://powersync-ja.github.io/powersync-js/web-sdk/classes/SyncStatus)
- [React Native](https://powersync-ja.github.io/powersync-js/react-native-sdk/classes/SyncStatus)
- [Node.js](https://powersync-ja.github.io/powersync-js/node-sdk/classes/SyncStatus)
- [.NET (Alpha)](https://github.com/powersync-ja/powersync-dotnet/blob/2728eab0d13849686ff3f9a603040940744599e1/PowerSync/PowerSync.Common/DB/Crud/SyncStatus.cs)
- [.NET (Beta)](https://github.com/powersync-ja/powersync-dotnet/blob/2728eab0d13849686ff3f9a603040940744599e1/PowerSync/PowerSync.Common/DB/Crud/SyncStatus.cs)

In addition to the `SyncStatus` options above, it's also a good idea to see what the current length of the upload queue looks like.
The upload queue contains all local mutations that need to be processed by the client specific `uploadData` implementation.
Expand All @@ -54,7 +54,7 @@
```typescript App Entry Point
createRoot(document.getElementById("root")!,
{
onUncaughtError: Sentry.reactErrorHandler((error, errorInfo) => {

Check warning on line 57 in maintenance-ops/production-readiness-guide.mdx

View check run for this annotation

Mintlify / Mintlify Validation (powersync) - vale-spellcheck

maintenance-ops/production-readiness-guide.mdx#L57

Did you really mean 'errorInfo'?
console.warn('Uncaught error', error, errorInfo.componentStack);
}),
// Callback called when React catches an error in an ErrorBoundary.
Expand Down Expand Up @@ -272,19 +272,19 @@
To view the current replication slots that are being used by PowerSync you can run the following query:

```
SELECT slot_name,

Check warning on line 275 in maintenance-ops/production-readiness-guide.mdx

View check run for this annotation

Mintlify / Mintlify Validation (powersync) - vale-spellcheck

maintenance-ops/production-readiness-guide.mdx#L275

Did you really mean 'slot_name'?
plugin,
slot_type,

Check warning on line 277 in maintenance-ops/production-readiness-guide.mdx

View check run for this annotation

Mintlify / Mintlify Validation (powersync) - vale-spellcheck

maintenance-ops/production-readiness-guide.mdx#L277

Did you really mean 'slot_type'?
active,
pg_size_pretty(pg_wal_lsn_diff(pg_current_wal_lsn(), restart_lsn)) AS replication_lag

Check warning on line 279 in maintenance-ops/production-readiness-guide.mdx

View check run for this annotation

Mintlify / Mintlify Validation (powersync) - vale-spellcheck

maintenance-ops/production-readiness-guide.mdx#L279

Did you really mean 'restart_lsn'?

Check warning on line 279 in maintenance-ops/production-readiness-guide.mdx

View check run for this annotation

Mintlify / Mintlify Validation (powersync) - vale-spellcheck

maintenance-ops/production-readiness-guide.mdx#L279

Did you really mean 'replication_lag'?
FROM pg_replication_slots;

Check warning on line 280 in maintenance-ops/production-readiness-guide.mdx

View check run for this annotation

Mintlify / Mintlify Validation (powersync) - vale-spellcheck

maintenance-ops/production-readiness-guide.mdx#L280

Did you really mean 'pg_replication_slots'?
```

To view the current configured value of the `max_slot_wal_keep_size` you can run the following query:
```
SELECT setting as max_slot_wal_keep_size

Check warning on line 285 in maintenance-ops/production-readiness-guide.mdx

View check run for this annotation

Mintlify / Mintlify Validation (powersync) - vale-spellcheck

maintenance-ops/production-readiness-guide.mdx#L285

Did you really mean 'max_slot_wal_keep_size'?
FROM pg_settings

Check warning on line 286 in maintenance-ops/production-readiness-guide.mdx

View check run for this annotation

Mintlify / Mintlify Validation (powersync) - vale-spellcheck

maintenance-ops/production-readiness-guide.mdx#L286

Did you really mean 'pg_settings'?
WHERE name = 'max_slot_wal_keep_size'

Check warning on line 287 in maintenance-ops/production-readiness-guide.mdx

View check run for this annotation

Mintlify / Mintlify Validation (powersync) - vale-spellcheck

maintenance-ops/production-readiness-guide.mdx#L287

Did you really mean 'max_slot_wal_keep_size'?
```

It's recommended to check the current replication slot lag and `max_slot_wal_keep_size` when deploying Sync Streams/Sync Rules changes to your PowerSync Service instance, especially when you're working with large database volumes.
Expand All @@ -297,16 +297,16 @@

To check which replication slots used by a PowerSync Service are no longer active, the following query can be executed against the source Postgres database:
```
SELECT slot_name,

Check warning on line 300 in maintenance-ops/production-readiness-guide.mdx

View check run for this annotation

Mintlify / Mintlify Validation (powersync) - vale-spellcheck

maintenance-ops/production-readiness-guide.mdx#L300

Did you really mean 'slot_name'?
pg_size_pretty(pg_wal_lsn_diff(pg_current_wal_lsn(), restart_lsn)) AS replication_lag

Check warning on line 301 in maintenance-ops/production-readiness-guide.mdx

View check run for this annotation

Mintlify / Mintlify Validation (powersync) - vale-spellcheck

maintenance-ops/production-readiness-guide.mdx#L301

Did you really mean 'restart_lsn'?

Check warning on line 301 in maintenance-ops/production-readiness-guide.mdx

View check run for this annotation

Mintlify / Mintlify Validation (powersync) - vale-spellcheck

maintenance-ops/production-readiness-guide.mdx#L301

Did you really mean 'replication_lag'?
FROM pg_replication_slots WHERE active = false;

Check warning on line 302 in maintenance-ops/production-readiness-guide.mdx

View check run for this annotation

Mintlify / Mintlify Validation (powersync) - vale-spellcheck

maintenance-ops/production-readiness-guide.mdx#L302

Did you really mean 'pg_replication_slots'?
```

If you have inactive replication slots that need to be cleaned up, you can drop them using the following query:
```
SELECT slot_name,

Check warning on line 307 in maintenance-ops/production-readiness-guide.mdx

View check run for this annotation

Mintlify / Mintlify Validation (powersync) - vale-spellcheck

maintenance-ops/production-readiness-guide.mdx#L307

Did you really mean 'slot_name'?
pg_drop_replication_slot(slot_name)
FROM pg_replication_slots where active = false;

Check warning on line 309 in maintenance-ops/production-readiness-guide.mdx

View check run for this annotation

Mintlify / Mintlify Validation (powersync) - vale-spellcheck

maintenance-ops/production-readiness-guide.mdx#L309

Did you really mean 'pg_replication_slots'?
```

The alternative to manually checking for inactive replication slots would be to configure the `idle_replication_slot_timeout` configuration parameter on the source Postgres database.
Expand Down
2 changes: 1 addition & 1 deletion resources/feature-status.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ Below is a summary of the current main PowerSync features and their release stat
| | |
| **Client SDKs** | |
| Rust SDK | Experimental |
| .NET SDK | Alpha |
| .NET SDK | Beta |
| Capacitor SDK | Alpha |
| TanStack Query | Alpha |
| Node.js SDK | Beta |
Expand Down
2 changes: 1 addition & 1 deletion resources/supported-platforms.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,8 @@
| --- | --- | --- |
| iOS | Yes | Uses native SQLite via Capacitor Community SQLite. |
| Android | Yes | Uses native SQLite via Capacitor Community SQLite. |
| Web | Yes | Uses WASQLite via the PowerSync Web SDK. |

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

View check run for this annotation

Mintlify / Mintlify Validation (powersync) - vale-spellcheck

resources/supported-platforms.mdx#L51

Did you really mean 'WASQLite'?
| Electron | Yes | Uses WASQLite via the PowerSync Web SDK. |

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

View check run for this annotation

Mintlify / Mintlify Validation (powersync) - vale-spellcheck

resources/supported-platforms.mdx#L52

Did you really mean 'WASQLite'?
| HTTP connection method | Yes | |
| WebSocket connection method | Yes | |

Expand Down Expand Up @@ -83,7 +83,7 @@
| JS | No | |
| WebAssembly | No | |
| HTTP connection method | Yes | |
| WebSocket connection method | Yes | Note: Only as an automated fallback for clients without backpressure support. |

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

View check run for this annotation

Mintlify / Mintlify Validation (powersync) - vale-spellcheck

resources/supported-platforms.mdx#L86

Did you really mean 'backpressure'?

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

Expand All @@ -104,12 +104,12 @@

| Platform / Feature | Supported? | Notes |
| --- | --- | --- |
| WPF | No | Some known build issues |
| WPF | Yes | |
| MAUI | Yes | |
| Winforms | YMMV - not tested | |

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

View check run for this annotation

Mintlify / Mintlify Validation (powersync) - vale-spellcheck

resources/supported-platforms.mdx#L109

Did you really mean 'Winforms'?
| CLI Windows | Yes | |
| CLI Mac | Yes | |
| Avalonia UI | YMMV - not tested | |

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

View check run for this annotation

Mintlify / Mintlify Validation (powersync) - vale-spellcheck

resources/supported-platforms.mdx#L112

Did you really mean 'Avalonia'?
| HTTP connection method | Yes | |
| WebSocket connection method | No | |

Expand Down
2 changes: 1 addition & 1 deletion snippets/client-sdks.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@

<Card title="Swift" icon="swift" href="/client-sdks/reference/swift" horizontal />

<Card title=".NET (alpha)" icon="microsoft" href="/client-sdks/reference/dotnet" horizontal />
<Card title=".NET (beta)" icon="microsoft" href="/client-sdks/reference/dotnet" horizontal />

<Card title="Rust (pre-alpha)" icon="rust" href="/client-sdks/reference/rust" horizontal />
</CardGroup>
8 changes: 4 additions & 4 deletions snippets/dotnet/installation.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,20 @@
For desktop/server/binary use-cases and WPF, add the [`PowerSync.Common`](https://www.nuget.org/packages/PowerSync.Common/) NuGet package to your project:

```bash
dotnet add package PowerSync.Common --prerelease
dotnet add package PowerSync.Common
```
</Tab>

<Tab title="MAUI">
For MAUI apps, add both [`PowerSync.Common`](https://www.nuget.org/packages/PowerSync.Common/) and [`PowerSync.Maui`](https://www.nuget.org/packages/PowerSync.Maui/) NuGet packages to your project:

```bash
dotnet add package PowerSync.Common --prerelease
dotnet add package PowerSync.Maui --prerelease
dotnet add package PowerSync.Common
dotnet add package PowerSync.Maui
```
</Tab>
</Tabs>

<Note>
Add `--prerelease` while this package is in alpha. To install a specific version, use `--version` instead: `dotnet add package PowerSync.Common --version 0.0.6-alpha.1`
To install a specific version, use `--version` instead: `dotnet add package PowerSync.Common --version <version>`
</Note>