#tauri-plugin #sqlite #plugin #extension

sys tauri-plugin-sqlite

tauri plugin for sqlite

2 releases

new 0.1.1 Apr 26, 2025
0.1.0 Apr 26, 2025

#2475 in Database interfaces

MIT license

42KB
436 lines

Tauri Plugin sqlite

license

Tauri plugin for sqlite database based on Sqlx

  • Consistent with the official sql plugin api, but only supports sqlite
  • Support Sqlite extension

Installation

Rust

cargo add tauri-plugin-sqlite

Webview

npm install tauri-plugin-sqlite-api
# or
yarn add tauri-plugin-sqlite-api

Usage

Initalize plugin

Configure plugin in tauri.conf.json

{
  "plugins": {
    "sqlite": {
      "preload": ["sqlite:test.db"] // optinal:preload database
    }
  }
}

Migration in rust

use tauri_plugin_sqlite::{Builder, Migration, MigrationKind};

fn main() {
    tauri::Builder::default()
        .plugin(
            Builder::default()
                .add_migrations(
                    "sqlite:test.db",
                    vec![
                        Migration {
                            version: 1,
                            description: "create_users_table",
                            sql: "CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT NOT NULL);",
                            kind: MigrationKind::Up,
                        },
                    ],
                )
                .build(),
        )
        .run(tauri::generate_context!())
        .expect("error while running tauri application");
}

Frontend api

import { load, execute, select, close } from 'tauri-plugin-sqlite-api';

// load database
const db = await load({
  db_url: 'sqlite:test.db'
});

// execute
const result = await execute(db, 'INSERT INTO users (name) VALUES (?)', ['John']);
console.log(result); // { rowsAffected: 1, lastInsertId: 1 }

// select
const rows = await select(db, 'SELECT * FROM users WHERE name = ?', ['John']);
console.log(rows); // [{ id: 1, name: 'John' }]

// close
await close(db);

Dependencies

~49–87MB
~1.5M SLoC