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)
- File uploads/downloads
- Backup Management (create, download, restore, delete backups) (NEW)
- Blazor & .NET 10 compatible
- Mudblazor demo Blazor WASM app with admin dashboard (NEW)
- Pocketbase v0.28.4
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.csprojas startup project - Open
\PocketBase\pocketbase.exein 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: admin@admin.com
PW: demo123456
Example blazor demo login (User):
Email: admin@admin.com
PW: demo1234
Example blazor admin dashboard:
Access the admin dashboard at /admin/login with:
Email: admin@admin.com
PW: demo123456 (PocketBase admin password)
The admin dashboard includes:
- Admin authentication
- Database backup management (create, download, restore, delete)
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("admin@admin.com", "demo123456");
Or as a User
var user = await client.User.AuthWithPasswordAsync("admin@admin.com", "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>();
Manage backups (Admin only)
// Create a new backup
var result = await client.Backup.CreateAsync("my-backup.zip");
// List all backups
var backups = await client.Backup.GetFullListAsync();
// Download a backup
var stream = await client.Backup.DownloadAsync("my-backup.zip");
// Restore from backup (⚠️ Destructive - replaces current database)
await client.Backup.RestoreAsync("my-backup.zip");
(not functional when pocketbase is hosted by windows. Will work with Linux though.
// Delete a backup
await client.Backup.DeleteAsync("my-backup.zip");
- .NET 10
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.
