rpc_data 5.2.0
rpc_data: ^5.2.0 copied to clipboard
Driver-agnostic data service layer (CRUD + querying + change streams) built on rpc_dart.
rpc_data #
Driver-agnostic data layer (CRUD, queries, change streams) for rpc_dart. Core package stays free of IO/FFI so it works in WASM and other constrained targets; database drivers live in companion packages.
Packages in this repo #
rpc_data– core contracts, in-memory repository, schema validation, RPC helpers.rpc_data_sqlite– SQLite/SQLCipher adapter + repository + cross-platform connection helpers (IO, WebAssembly).rpc_data_postgres– PostgreSQL adapter + repository.
Quick start (in-memory) #
import 'package:rpc_data/rpc_data.dart';
Future<void> main() async {
final env = await DataServiceFactory.inMemory();
final client = env.client;
final created = await client.create(
collection: 'notes',
payload: {'title': 'Hello', 'done': false},
);
print('created: ${created.id} v=${created.version}');
final listed = await client.list(
collection: 'notes',
options: const QueryOptions(limit: 5),
);
for (final record in listed.records) {
print('note ${record.id}: ${record.payload}');
}
await env.dispose();
}
Choosing a driver #
- Add
rpc_data_sqlitefor local-first / SQLCipher / web OPFS builds. The package re-exportsrpc_data. - Add
rpc_data_postgresfor server-side JSONB-backed storage. - Keep
rpc_dataalone for pure in-memory or to build your own adapter.