PowerSync is a sync engine for building local-first apps with instantly-responsive UI/UX and simplified state transfer. Syncs between SQLite on the client-side and Postgres, MongoDB or MySQL on the server-side.
powersync-dotnet
is the monorepo for PowerSync .NET SDKs.
Packages are published to NuGet.
-
- Core package: .NET implementation of a PowerSync database connector and streaming sync bucket implementation. Packages meant for specific platforms will extend functionality of
Common
.
- Core package: .NET implementation of a PowerSync database connector and streaming sync bucket implementation. Packages meant for specific platforms will extend functionality of
Demo applications are located in the demos/
directory. Also see our Demo Apps / Example Projects gallery which lists all projects by the backend and client-side framework they use.
- demos/CommandLine: A CLI to-do list example app using a Node-js backend.
This PowerSync SDK currently targets the following .NET versions:
-
.NET 9 - Latest version
-
.NET 8 - Current LTS Version, used for development of this project
-
.NET 6 - supported for compatibility with older projects)
-
.NET Standard 2.0 - for compatibility with older libraries and frameworks, tested/verified older versions will be listed below.
-
.NET Framework 4.8:
To get a .NET Framework 4.8 working with this SDK add the following to your
.csproj
file:<PropertyGroup> ... <!-- Ensures the correct SQLite DLL is available --> <RuntimeIdentifiers>win-x86;win-x64</RuntimeIdentifiers> <RuntimeIdentifier>win-x64</RuntimeIdentifier> </PropertyGroup> <ItemGroup> ... <!-- Ensures the HTTP client resolves in the SDK --> <PackageReference Include="System.Net.Http" Version="4.3.4" /> </ItemGroup>
and create a
IsExternalInit.cs
file in your project with the following contents:using System.ComponentModel; namespace System.Runtime.CompilerServices { [EditorBrowsable(EditorBrowsableState.Never)] internal class IsExternalInit { } }
When running commands such as dotnet run
or dotnet test
, you may need to specify the target framework explicitly using the --framework
flag.
Download PowerSync extension
dotnet run --project Tools/Setup
Install dependencies
dotnet restore
Run all tests
dotnet test -v n --framework net8.0
Run a specific test
dotnet test -v n --framework net8.0 --filter "test-file-pattern"
dotnet add package PowerSync.Common --prerelease