SurrealDB Client For Dart & Flutter
SurrealDB client for Dart and Flutter.
Quick Start
import 'package:surrealdb/surrealdb.dart';
void main(List<String> args) async {
final client = SurrealDB('ws://localhost:8000/rpc');
client.connect();
await client.wait();
await client.use('test', 'test');
await client.signin(user: 'root', pass: 'root');
await client.create('person', TestModel(false, 'title'));
var person = await client.create('person', {
'title': 'Founder & CEO',
'name': {
'first': 'Tobie',
'last': 'Morgan Hitchcock',
},
'marketing': false,
});
print(person);
List<Map<String, Object?>> persons = await client.select('person');
final groupBy = await client.query(
'SELECT marketing, count() FROM type::table(\$tb) GROUP BY marketing',
{
'tb': 'person',
},
);
print(groupBy);
print(persons.length);
}
Features
connect()
Connects to a database endpoint provided in constructer and authenticate with token if provided in constructer.
close()
Closes the persistent connection to the database.
wait()
Ensures connections established with the database and pinged successfully.
ping()
Closes the persistent connection to the database.
use(String namespace, String database)
Switch to a specific namespace and database.
info()
Retrieve info about the current Surreal instance
signup(String user, String pass)
Signs up to a specific authentication scope
signin(String user, String pass)
Signs in to a specific authentication scope
invalidate()
Invalidates the authentication for the current connection
authenticate(String token)
Authenticates the current connection with a JWT token
kill(String query)
Kill a specific query
let(String key, String val)
Assigns a value as a parameter for this connection
create(String thing, dynamic data)
Creates a record in the database. data
has to be json encodable object or class
has toJson
method.
Future<List<T>> select(String table)
Selects all records in a table, or a specific record, from the database
query(String query, [Map<String, Object?>? vars])
Runs a set of SurrealQL statements against the database
update(String thing, [Object? data])
Updates all records in a table, or a specific record, in the database NOTE: This function replaces the current document / record data with the specified data.
change(String thing, [Object? data])
Modifies all records in a table, or a specific record, in the database NOTE: This function merges the current document / record data with the specified data.
modify(String thing, [Object? data])
Applies JSON Patch changes to all records, or a specific record, in the database NOTE: This function patches the current document / record data with the specified JSON Patch data.
delete(String thing)
Deletes all records in a table, or a specific record, from the database