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:
- Add web support
- Add types to outputs
- Provide streams for client events