@razein97/tauri-plugin-rusqlite2
v2.2.7
Published
A fork of tauri-plugin-sqlite by @bspeckco using rusqlite, supporting only SQLite with added transaction capabilities.
Maintainers
Readme
Tauri Plugin SQLite - JavaScript Bindings (@razein/tauri-plugin-rusqlite2)
This package provides the JavaScript/TypeScript bindings for the @razein97/tauri-plugin-rusqlite2 Tauri plugin.
Note: This is a fork of
tauri-plugin-sqliteby @razein97 which is a fork of the officialtauri-plugin-sqlby @bspeckco. It has been modified to userusqliteinstead ofsqlx, supporting only SQLite databases.
It adds:
- Transaction support (
beginTransaction,commitTransaction,rollbackTransaction)- Migrations
- Extensions support
- SQLCipher support
Installation
You need to install both the Rust Core plugin and these JavaScript bindings.
See the main plugin README for instructions on setting up the Rust Core plugin in your Cargo.toml.
Install the JavaScript bindings using your preferred package manager:
# Using pnpm
pnpm add @razein97/tauri-plugin-rusqlite2
# Using npm
npm install @razein97/tauri-plugin-rusqlite2
# Using yarn
yarn add @razein97/tauri-plugin-rusqlite2Rust bindings
Install the rust package using cargo:
cargo add tauri-plugin-rusqlite2Usage
Import the Database class and use the load method to connect to your SQLite database.
import Database from '@razein97/tauri-plugin-rusqlite2';
async function initializeDb() {
try {
// Load a file-based database (relative to AppData dir)
//to use without encryption leave the middle field empty. eg: 'sqlite::test.db'
const db = await Database.load('sqlite:pass:test.db', [
'path/to/ext_1',
'path/to/ext_2',
]);
// Or load an in-memory database
// const db = await Database.load('sqlite::memory:');
console.log('Database loaded successfully');
// Example query
await db.execute(
'CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT)'
);
const result = await db.execute('INSERT INTO users (name) VALUES (?)', [
'Test User',
]);
console.log('Insert result:', result);
const users = await db.select('SELECT * FROM users');
console.log('Selected users:', users);
// See the main plugin README for transaction examples
} catch (error) {
console.error('Failed to initialize database:', error);
}
}
initializeDb();Extensions
All downloaded extension need to set read, write, executable permission to run on mac or linux.
- macos
chmod 755 path/to/ext.dylib
- linux
chmod 755 path/to/ext.soRefer to the main plugin README for detailed API documentation, including transaction usage.
