The Flutter SurrealDB WebAssembly (WASM) package is a powerful integration for Flutter, built upon the foundation of surrealdb.wasm, the official SurrealDB library for WebAssembly.
Try out surreal_wasm applications in your browser:
❗ In order to start using surrealdb_wasm you must have the Flutter SDK installed on your machine.
Install via flutter pub add
:
flutter pub add surrealdb_wasm
Alternatively, add surrealdb_wasm
to your pubspec.yaml
:
dependencies:
surrealdb_wasm:
Install it:
flutter pub get
-
connect()
-
use()
-
create()
-
update()
-
merge()
-
delete()
-
select()
-
query()
-
transaction()
-
set()
-
unset()
-
signup()
-
signin()
-
invalidate()
-
authenticate()
-
patch()
-
version()
-
health()
final db = Surreal();
await db.connect('indxdb://surreal');
await db.use(namespace: 'test', database: 'test');
final created = db.create('person',
{
'title': 'CTO',
'name': {
'first': 'Tom',
'last': 'Jerry',
},
'marketing': true,
},
);
// created['id']: person:b9eht8bie8abf0vbcfxh
final merged = await db.merge(
created['id'],
{
'marketing': false,
},
);
final tom = await db.select(created['id']);
final deleted = await db.delete(created['id']);
For more code examples, kindly refer to the integration test and the example project.
final result = await db.transaction((txn) async {
txn.query('DEFINE TABLE test SCHEMAFULL;');
txn.query('DEFINE FIELD id ON test TYPE record;');
txn.query('DEFINE FIELD name ON test TYPE string;');
txn.query(
r'CREATE test SET name = $name;',
bindings: {'name': 'John'},
);
if (somethingWrong) {
txn.cancel();
}
});
For more code examples, kindly refer to the integration test of transaction.
Contributions are welcome! Please check out the unimplemented features above, issues on the repository, and feel free to open a pull request. For more information, please see the contribution guide.
This project is licensed under the terms of the MIT license.
If you utilize this package, please consider citing it with:
@misc{surrealdb_wasm,
author = {Lim Chee Kin},
title = {surrealdb_wasm: Flutter SurrealDB WebAssembly(WASM) package},
year = {2023},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{https://github.com/limcheekin/surrealdb_wasm}},
}