Obsah článku / Contents
Tauri: Rýchla desktopová appka za zlomok ceny Electronu (Časť 1)

Tauri: Rýchly kôň menom Rust

Desktopové aplikácie sú späť. Nie preto, že by web nestačil, ale preto, že niektoré veci jednoducho fungujú lepšie lokálne — offline prístup, prístup k súborovému systému, systémové notifikácie, a hlavne: súkromie dát.

Ak ste niekedy skúšali Electron, viete, o čom hovorím. Jednoduchý TODO list, ktorý zaberá 200 MB a žerie 500 MB RAM, pretože v pozadí beží celý Chromium. Tauri to robí inak.

Prečo Tauri a nie Electron?

MetrikaElectronTauri
Veľkosť "Hello World"~200 MB~3-5 MB
RAM usage (idle)~150-300 MB~20-50 MB
Startup time2-5s<1s
Rendering engineBundled ChromiumSystem WebView
Backend languageNode.jsRust
Bezpečnostný modelSlabšíSilný (Rust + permissions)

Ako Tauri funguje?

┌─────────────────────────────────────────┐
│            Tauri Application            │
│                                         │
│  ┌──────────────────────────────────┐   │
│  │         Frontend (WebView)       │   │
│  │   React / Vue / Svelte / HTML    │   │
│  │   Bežné web technológie          │   │
│  └──────────────┬───────────────────┘   │
│                 │ IPC Bridge            │
│  ┌──────────────┴───────────────────┐   │
│  │         Backend (Rust)           │   │
│  │   Systémové API, súbory, shell   │   │
│  │   Rýchle operácie, bezpečnosť   │   │
│  └──────────────────────────────────┘   │
│                                         │
│  System WebView (WRY)                   │
│  • Windows: WebView2 (Edge)             │
│  • macOS: WKWebView (Safari)            │
│  • Linux: WebKitGTK                     │
└─────────────────────────────────────────┘

Tauri nebalí vlastný prehliadač. Používa systémový WebView, ktorý je na každom OS zadarmo. Frontend píšete v čomkoľvek webovom (React, Vue, Svelte). Backend je v Ruste — rýchly, bezpečný, s minimálnou pamäťovou stopou.

Rust: Rýchly kôň

Rust nie je v Tauri len pre parádu. Je tam preto, lebo:

rust
// src-tauri/src/lib.rs

// Tauri command — volateľný z frontendu
#[tauri::command]
fn process_large_file(path: String) -> Result<FileStats, String> {
    let content = std::fs::read_to_string(&path)
        .map_err(|e| e.to_string())?;

    // Toto beží natívne, nie v JS engine
    let stats = FileStats {
        lines: content.lines().count(),
        words: content.split_whitespace().count(),
        chars: content.chars().count(),
        size_bytes: content.len(),
    };

    Ok(stats)
}

// Frontend volá tento command cez IPC
// invoke('process_large_file', { path: '/data/huge.csv' })

Rust vám dáva:

  • ✅ Prístup k súborovému systému bez Node.js overhead
  • ✅ Paralelné spracovanie cez tokio/rayon
  • ✅ Memory safety bez garbage collectora
  • ✅ Natívny výkon pre CPU-intenzívne operácie

Frontend: Klasický web

tsx
// src/App.tsx (React príklad)
import { invoke } from '@tauri-apps/api/core';

function App() {
  const [stats, setStats] = useState<FileStats | null>(null);

  const analyzeFile = async () => {
    // Volanie Rust backendu cez Tauri IPC
    const result = await invoke<FileStats>('process_large_file', {
      path: selectedFile,
    });
    setStats(result);
  };

  return (
    <div>
      <button onClick={analyzeFile}>Analyzuj súbor</button>
      {stats && (
        <div>
          <p>Riadkov: {stats.lines}</p>
          <p>Slov: {stats.words}</p>
        </div>
      )}
    </div>
  );
}

Nič nové. Bežný React, bežný TypeScript. Akýkoľvek web developer sa v tom okamžite zorientuje.

Kedy (ne)použiť Tauri

Použite Tauri keď:

  • ✅ Chcete natívnu desktopovú appku s webovým UI
  • ✅ Veľkosť a výkon sú dôležité
  • ✅ Potrebujete prístup k súborovému systému / OS API
  • ✅ Budujete privacy-first aplikáciu (dáta zostávajú lokálne)

Nepoužívajte Tauri keď:

  • ❌ Váš tím neovláda Rust (learning curve je strmá)
  • ❌ Potrebujete 100% rovnaký rendering na všetkých platformách (WebView sa líši)
  • ❌ Vaša appka je v podstate webová stránka (použite PWA)

V ďalšej časti sa pozrieme na najzaujímavejší plot twist — ako do Tauri appky dostať Python s LangGraphom, aby ste mali rýchly Rust motor aj inteligentný AI mozog v jednom balíku.

Všetky články