@r1-runtime/apis
Tauri API shims for R1 — drop-in replacements for @tauri-apps/api.
Features
Complete implementations of Tauri APIs that work in the browser:
- File System (
fs)
- SQL Database (
sql)
- Events (
event)
- Dialogs (
dialog)
- Path utilities (
path)
- OS information (
os)
- Clipboard (
clipboard)
- Window management (
window)
- Key-value store (
store)
- Notifications (
notification)
- Shell (
shell)
- HTTP (
http)
Installation
npm install @r1-runtime/apis
Usage
File System
import { readTextFile, writeTextFile, readDir } from '@r1-runtime/apis/fs';
await writeTextFile('notes.txt', 'Hello World');
const content = await readTextFile('notes.txt');
const files = await readDir('/app/data');
SQL Database
import { Database } from '@r1-runtime/apis/sql';
const db = await Database.load('sqlite:app.db');
await db.execute('CREATE TABLE users (id INTEGER, name TEXT)');
await db.execute('INSERT INTO users VALUES (?, ?)', [1, 'Alice']);
const rows = await db.select('SELECT * FROM users');
Events
import { listen, emit } from '@r1-runtime/apis/event';
await listen('update', (event) => {
console.log('Received:', event.payload);
});
await emit('button-clicked', { id: 123 });
Dialog
import { open, save, message } from '@r1-runtime/apis/dialog';
const file = await open({ multiple: false });
const savePath = await save({ defaultPath: 'document.txt' });
await message('Operation complete!', { title: 'Success' });
Path Utilities
import { appDataDir, join, basename } from '@r1-runtime/apis/path';
const dataDir = await appDataDir();
const filePath = await join(dataDir, 'config.json');
const name = await basename(filePath);
OS Information
import { platform, arch, version } from '@r1-runtime/apis/os';
const os = await platform();
const architecture = await arch();
const osVersion = await version();
Clipboard
import { writeText, readText } from '@r1-runtime/apis/clipboard';
await writeText('Hello from R1!');
const text = await readText();
Store (Key-Value)
import { Store } from '@r1-runtime/apis/store';
const store = new Store('settings.json');
await store.set('theme', 'dark');
const theme = await store.get('theme');
await store.save();
Available Exports
All APIs support direct imports:
import { ... } from '@r1-runtime/apis/fs';
import { ... } from '@r1-runtime/apis/sql';
import { ... } from '@r1-runtime/apis/event';
import { ... } from '@r1-runtime/apis/dialog';
import { ... } from '@r1-runtime/apis/path';
import { ... } from '@r1-runtime/apis/os';
import { ... } from '@r1-runtime/apis/clipboard';
import { ... } from '@r1-runtime/apis/window';
import { ... } from '@r1-runtime/apis/store';
import { ... } from '@r1-runtime/apis/notification';
import { ... } from '@r1-runtime/apis/shell';
import { ... } from '@r1-runtime/apis/http';
Compatibility
These APIs are designed to be drop-in replacements for @tauri-apps/api. Your existing Tauri frontend code should work without changes.
License
MIT © 2026 R1 Runtime Team