Electron czy Tauri 2 i Rust? Architektura desktopowa dla lokalnego AI
Porównanie architektury Electron i Tauri 2: jak mierzyć RAM, czas startu i rozmiar pakietu, gdzie kończą się gwarancje bezpieczeństwa Rusta i jak zaplanować rzetelny benchmark lokalnych aplikacji AI.

Porównanie architektury Electron i Tauri 2: zakres pomiarów RAM, czasu startu i rozmiaru pakietów, granice bezpieczeństwa Rusta oraz procedura rzetelnego benchmarku lokalnych aplikacji AI.
W lokalnych aplikacjach AI interfejs, silnik obliczeniowy i modele konkurują o zasoby komputera. Wybór frameworka wpływa na sposób budowy programu, ale sam w sobie nie przesądza o zużyciu pamięci RAM ani o szybkości przetwarzania.
1. Status pomiarów
Nie publikujemy tu zweryfikowanego benchmarku naszych aplikacji. Wcześniejsze liczby dotyczące pamięci, czasu startu, rozmiaru instalatora i opóźnień komunikacji zostały usunięte, ponieważ nie towarzyszyły im surowe wyniki, wersje porównywanych buildów ani odtwarzalny scenariusz. Poniższe porównanie opisuje architekturę, a procedura testowa jest propozycją, a nie raportem z wykonanych pomiarów.
2. Co właściwie porównujemy
| Obszar | Electron | Tauri 2 | Co sprawdzić w aplikacji |
|---|---|---|---|
| Środowisko interfejsu | Chromium i Node.js; proces główny oraz procesy renderujące | Systemowy WebView i backend w Ruście | Pamięć całego drzewa procesów |
| Dystrybucja | Pakiet zawiera środowisko uruchomieniowe Electrona | Korzysta z WebView dostępnego w danym systemie | Instalator, zależności i modele – osobno |
| Komunikacja | IPC między procesami | Komunikacja WebView–backend | Faktyczna liczba kopii buforów i czas całej operacji |
Tauri nie gwarantuje automatycznie mniejszego zużycia RAM ani szybszego startu każdego programu. Koszt silników AI, wag modeli i procesów pomocniczych trzeba uwzględnić niezależnie od warstwy interfejsu.

Interfejs Video2X Ultimate Manager
3. Granice bezpieczeństwa i integracji z GPU
Reguły bezpiecznego Rusta (safe Rust) zapobiegają określonym błędom bezpieczeństwa pamięci i wyścigom danych – pod warunkiem, że użyte abstrakcje unsafe są poprawne. Nie gwarantują natomiast braku wycieków pamięci, zakleszczeń ani błędów w kolejności operacji. FFI, kod C/C++, sterowniki i zarządzanie buforami GPU wymagają osobnej weryfikacji.
Wywołanie natywne nie dowodzi jeszcze, że operacja jest zero-copy. Trzeba prześledzić transfery między procesami oraz między RAM a VRAM, własność buforów i synchronizację. Nie przedstawiamy przekazywania surowego adresu z interfejsu jako gotowego, bezpiecznego rozwiązania. Przeglądu konfiguracji wymagają także uprawnienia komend.
4. Proponowany protokół benchmarku
- Zapisać wersję aplikacji, commit, tryb kompilacji (release), framework, system operacyjny i wersję WebView, sterownik GPU oraz parametry CPU, RAM i GPU. Porównywać tę samą funkcjonalność na identycznych modelach i danych wejściowych, weryfikowanych sumami SHA-256.
- Osobno przetestować pusty interfejs, interfejs z załadowanym modelem i identyczne zadanie AI. Za koniec startu przyjąć moment, w którym interfejs jest gotowy do przyjęcia polecenia; gotowość modelu mierzyć oddzielnie.
- Wykonać po 10 prób zimnego i ciepłego startu. Opisać sposób resetowania środowiska i pamięci podręcznej; nie łączyć obu serii. Zapisać wszystkie próby, medianę i rozrzut – również nieudane przebiegi.
- Mierzyć pamięć całego drzewa procesów oraz szczytowe zużycie podczas zadania. Podać narzędzie, jego wersję i definicję metryki pamięci, unikając podwójnego liczenia pamięci współdzielonej. VRAM raportować osobno. Rozmiar instalatora nie obejmuje automatycznie modeli ani zależności pobieranych później.
- Udostępnić skrypt, komendy, pliki CSV i logi wraz z konfiguracją. Dopiero wtedy formułować wnioski – ograniczone do przebadanego sprzętu i scenariusza.
5. Nasze produkty po migracji
Nasz katalog działa dziś na Tauri 2: Video2X Ultimate Manager i AI File Sorter przeszły już z Electrona na Tauri. Wyjątkiem jest VideoSorterLocal – obecna wersja korzysta z PySide6, a jego migracja na Tauri 2 jest w toku. Opisany wyżej protokół pozostaje jednak aktualny: sama zmiana frameworka nie jest jeszcze dowodem na mniejsze zużycie pamięci czy szybszy start – to trzeba zmierzyć.
Źródła techniczne
Dokumentacja wyjaśnia architekturę i ograniczenia; nie potwierdza wyników wydajnościowych naszych programów.