{"id":27915296,"url":"https://github.com/powersync-ja/powersync-dotnet","last_synced_at":"2025-05-06T15:52:28.458Z","repository":{"id":281835411,"uuid":"896077283","full_name":"powersync-ja/powersync-dotnet","owner":"powersync-ja","description":"SDK that enables local-first and real-time reactive apps with embedded SQLite for .NET clients","archived":false,"fork":false,"pushed_at":"2025-04-10T09:02:37.000Z","size":457,"stargazers_count":4,"open_issues_count":1,"forks_count":0,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-05-01T07:42:52.506Z","etag":null,"topics":["local-first","local-storage","offline","offline-first","powersync","sql","sqlite","state-management","sync"],"latest_commit_sha":null,"homepage":"https://www.powersync.com","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/powersync-ja.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-29T13:53:24.000Z","updated_at":"2025-03-27T15:23:33.000Z","dependencies_parsed_at":"2025-03-11T12:22:55.045Z","dependency_job_id":"222427ee-0b1a-4cf2-86f0-5bc2a3c17958","html_url":"https://github.com/powersync-ja/powersync-dotnet","commit_stats":null,"previous_names":["powersync-ja/powersync-dotnet"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/powersync-ja%2Fpowersync-dotnet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/powersync-ja%2Fpowersync-dotnet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/powersync-ja%2Fpowersync-dotnet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/powersync-ja%2Fpowersync-dotnet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/powersync-ja","download_url":"https://codeload.github.com/powersync-ja/powersync-dotnet/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252716923,"owners_count":21793194,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["local-first","local-storage","offline","offline-first","powersync","sql","sqlite","state-management","sync"],"created_at":"2025-05-06T15:52:27.806Z","updated_at":"2025-05-06T15:52:28.443Z","avatar_url":"https://github.com/powersync-ja.png","language":"C#","readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.powersync.com\" target=\"_blank\"\u003e\u003cimg src=\"https://github.com/powersync-ja/.github/assets/7372448/d2538c43-c1a0-4c47-9a76-41462dba484f\"/\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n_[PowerSync](https://www.powersync.com) 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._\n\n# PowerSync .NET SDKs\n\n`powersync-dotnet` is the monorepo for PowerSync .NET SDKs.\n\n## Monorepo Structure: Packages\n\nPackages are published to [NuGet](https://www.nuget.org/profiles/PowerSync).\n\n- [PowerSync/Common](./PowerSync/Common/README.md)\n\n  - Core package: .NET implementation of a PowerSync database connector and streaming sync bucket implementation. Packages meant for specific platforms will extend functionality of `Common`.\n\n## Demo Apps / Example Projects\n\nDemo applications are located in the [`demos/`](./demos/) directory. Also see our [Demo Apps / Example Projects](https://docs.powersync.com/resources/demo-apps-example-projects) gallery which lists all projects by the backend and client-side framework they use.\n\n### Command-Line\n\n- [demos/CommandLine](./demos/CommandLine/README.md): A CLI to-do list example app using a Node-js backend.\n\n# Supported Frameworks\n\nThis PowerSync SDK currently targets the following .NET versions:\n- **.NET 9** - [Latest version](https://dotnet.microsoft.com/en-us/download/dotnet/9.0)\n-\t**.NET 8** - [Current LTS Version, used for development of this project](https://dotnet.microsoft.com/en-us/download/dotnet/8.0)\n- **.NET 6** - supported for compatibility with older projects)\n-\t**.NET Standard 2.0** - for compatibility with older libraries and frameworks, tested/verified older versions will be listed below.\n\n- .NET Framework 4.8:\n    \n    To get a .NET Framework 4.8 working with this SDK add the following to your `.csproj` file:\n\n    ```xml\n    \u003cPropertyGroup\u003e\n      ...\n      \u003c!-- Ensures the correct SQLite DLL is available --\u003e\n      \u003cRuntimeIdentifiers\u003ewin-x86;win-x64\u003c/RuntimeIdentifiers\u003e\n      \u003cRuntimeIdentifier\u003ewin-x64\u003c/RuntimeIdentifier\u003e\n    \u003c/PropertyGroup\u003e\n\n    \u003cItemGroup\u003e\n      ...\n      \u003c!-- Ensures the HTTP client resolves in the SDK --\u003e\n      \u003cPackageReference Include=\"System.Net.Http\" Version=\"4.3.4\" /\u003e \n    \u003c/ItemGroup\u003e\n    ```\n\n    and create a `IsExternalInit.cs` file in your project with the following contents:\n    \n    ```cs\n    using System.ComponentModel;\n\n    namespace System.Runtime.CompilerServices\n    {\n        [EditorBrowsable(EditorBrowsableState.Never)]\n        internal class IsExternalInit { }\n    }\n    ``` \n    \n------- \n\nWhen running commands such as `dotnet run` or `dotnet test`, you may need to specify the target framework explicitly using the `--framework` flag.\n\n# Development\n\nDownload PowerSync extension\n\n```bash\ndotnet run --project Tools/Setup    \n```\n\nInstall dependencies\n\n```bash\ndotnet restore\n```\n\n## Tests\n\nRun all tests\n\n```bash\ndotnet test -v n --framework net8.0\n```\n\nRun a specific test\n\n```bash\ndotnet test -v n --framework net8.0 --filter \"test-file-pattern\"  \n```\n\n## Using the PowerSync.Common package in your project\n```bash\ndotnet add package PowerSync.Common --prerelease\n```","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpowersync-ja%2Fpowersync-dotnet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpowersync-ja%2Fpowersync-dotnet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpowersync-ja%2Fpowersync-dotnet/lists"}