Community-developed, open-source C# SDK for PocketBase — the lightweight, real-time backend for your apps.
- Authentication (user/admin)
- Real-time subscriptions
- Batch operations (create/update/delete) (NEW)
- File uploads/downloads
- Blazor & .NET 9 compatible (NEW)
- Mudblazor demo Blazor WASM app (NEW)
- Pocketbase v0.28.4 (NEW)
Special thanks to PRCV1 for creating the original PocketBase C# SDK and laying the groundwork for this project. His excellent work made this continuation possible.
This fork exists with his approval.
Structure:
- Example (Blazor demo site)
- PocketBaseSharp (The SDK)
- PocketBaseSharp.Tests
- PocketBase (Database & windows binary)
Running the demo project:
- Set
example.csproj
as startup project - Open
\PocketBase\pocketbase.exe
in terminal and run the following command to start the PocketBase instance:pocketbase.exe serve
- Visit
http://127.0.0.1:8090/_/
to access the database directly
Pocketbase admin login:
Email: [email protected]
PW: demo123456
Example blazor demo login:
Email: [email protected]
PW: demo1234
example/wwwroot/appsettings.json
to change PocketBase instance address.
Using the SDK:
- Add PocketSharpSDK to your solution
- Add PocketSharpSDK to your project as a reference
- Nuget package coming in the future
using PocketBaseSharp;
Create a new client which connects to your PocketBase API
var client = new PocketBase("http://127.0.0.1:8090");
Authenticate as an Admin
var admin = await client.Admin.AuthWithPasswordAsync("[email protected]", "demo123456");
Or as a User
var user = await client.User.AuthWithPasswordAsync("[email protected]", "demo1234");
Query some data (for example, some ToDo items) Note: Each CRUD action requires a data type which inherits from the base class 'BaseModel'.
var restaurantList = await client.Collection("todos").GetFullListAsync<todos>();
- .NET 9
Contributions are welcome! Please open issues or pull requests.
- Fork the repo
- Create your feature branch (
git checkout -b feature/YourFeature
) - Commit your changes (
git commit -am 'Add new feature'
) - Push to the branch (
git push origin feature/YourFeature
) - Open a pull request
This project is currently still under development. It is not recommended to use it in a production environment. Things can and will change. This also applies to PocketBase
Built with 💘 for the PocketBase community. Continued development of the original PocketBase C# SDK by PRCV1 - I can't thank you enough for your work! This project is tested with BrowserStack.