04 - Frontend ↔ Backend Bridge

Tauri connects UI and Rust using commands and events.

Calling Rust from frontend

Frontend example:

import { invoke } from '@tauri-apps/api/core';
const greeting = await invoke<string>('greet', { name: 'Sam' });

Rust example:

#[tauri::command]
fn greet(name: String) -> String {
    format!("Hello, {}!", name)
}

Returning errors safely

Use typed errors and clear messages instead of panics.

Events for push-style updates

  • Backend emits events for progress/state changes
  • Frontend listens and updates UI live

Example pattern:

  1. Frontend starts long task via command
  2. Backend emits task-progress
  3. Frontend updates progress bar