2 releases
new 0.1.1 | Apr 26, 2025 |
---|---|
0.1.0 | Apr 26, 2025 |
#2475 in Database interfaces
42KB
436 lines
Tauri Plugin sqlite
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