Experimental Dart support for SurrealDB. This package is a port of surreal.js.
Features
connect(url)- Connects to a local or remote database endpointwait()- Waits for the connection to the database to succeedclose()- Closes the persistent connection to the databaseuse(ns, db)- Switch to a specific namespace and databasesignup(vars)- Signs this connection up to a specific authentication scopesignin(vars)- Signs this connection in to a specific authentication scopeinvalidate()- Invalidates the authentication for the current connectionauthenticate(token)- Authenticates the current connection with a JWT tokenlet(key, val)- Assigns a value as a parameter for this connectionquery(sql, vars)- Runs a set of SurrealQL statements against the databaseselect(thing)- Selects all records in a table, or a specific recordcreate(thing, data)- Creates a record in the databaseupdate(thing, data)- Updates all records in a table, or a specific recordchange(thing, data)- Modifies all records in a table, or a specific recordmodify(thing, data)- Applies JSON Patch changes to all records in a table, or a specific recorddelete(thing)- Deletes all records, or a specific record
Getting started
For installation instructions and SurrealQL introduction visit SurrealDB docs.
Usage
// Tell the client where to find your Surreal instance on the network.
final client = SurrealClient(url: '...');
// Sign in and specify which namespace and database client should be referring to.
await client.signIn({'user': 'root', 'pass': 'root'});
await client.use('test', 'test');
// Create and read an article.
await client.create('article', {'title': 'SurrealDB for Dart'});
print(await client.select('article'));
// Close the connection.
client.close();
Additional information
This is a 3rd-party integration which happens to also be an experimental one. Keep that in mind when considering this package as a foundation of your project.
Contributions are welcome.
Planned improvements:
xAdd web supportAdd types to outputsProvide streams for client events
Libraries
- surrealdb_client
- Support for doing something awesome.