turso_dart

Dart binding for Turso, the evolution of libsql/re-write of sqlite

Local database

import 'package:turso_dart/turso_dart.dart';

void main() async {
  final path = await getApplicationSupportDirectory();
  final db = connect(LocalDbConfig('${path.path}/test.db'));
  final conn = db.connect();
  conn.execute(
    "CREATE TABLE IF NOT EXISTS test (id INTEGER PRIMARY KEY, name TEXT)",
  );
  conn.execute(
    "INSERT INTO test (name) VALUES (?1)",
    params: Params.positional(["Alice"]),
  );
  conn.execute(
    "INSERT INTO test (name) VALUES (:name)",
    params: Params.named({":name": "Bob"}),
  );
  final res = conn.query("SELECT * FROM test");
  print(res);
}

Sync database

import 'package:turso_dart/turso_dart.dart';

void main() async {
  final path = await getApplicationSupportDirectory();
  final db = connectSync(
    SyncDbConfig('${path.path}/sync.db', remoteUrl: "", authToken: ""),
  );
  final conn = db.connect();
  db.pull();
  conn.execute(
    "CREATE TABLE IF NOT EXISTS test (id INTEGER PRIMARY KEY, name TEXT)",
  );
  conn.execute(
    "INSERT INTO test (name) VALUES (?1)",
    params: Params.positional(["Alice"]),
  );
  conn.execute(
    "INSERT INTO test (name) VALUES (:name)",
    params: Params.named({":name": "Bob"}),
  );
  db.push();
  db.pull();
  final res = conn.query("SELECT * FROM user");
  print(res);
}
import 'package:turso_dart/isolate.dart';

void main() async {
  final path = await getApplicationSupportDirectory();
  final db = await connect(LocalDbConfig('${path.path}/new.db'));
  final conn = await db.connect();
  await conn.execute(
    "CREATE TABLE IF NOT EXISTS test (id INTEGER PRIMARY KEY, name TEXT)",
  );
  await conn.execute(
    "INSERT INTO test (name) VALUES (?1)",
    params: Params.positional(["Alice"]),
  );
  await conn.execute(
    "INSERT INTO test (name) VALUES (:name)",
    params: Params.named({":name": "Bob"}),
  );
  print(await conn.query("SELECT * FROM test"));
  final stmt = await conn.prepare("SELECT * FROM test where id = ?1");
  print(await stmt.query(params: Params.positional([1])));
  final tx = await conn.transaction();
  await (await tx.prepare(
    "INSERT INTO test (name) VALUES (:name)",
  )).execute(params: Params.named({":name": "Charlie"}));
  await tx.commit();
  print(await conn.query("SELECT * FROM test"));
}

Libraries

isolate
turso_dart