Десктоп: Electron и Tauri
Собственный сервис можно отдать и как десктоп-приложение: знакомый веб-стек, окно, трей и работа с файловой системой. Разбираем два пути.
Electron — быстрый старт, весомый размер
- Chromium + Node в каждом экземпляре — знакомо и предсказуемо;
- но бинарник тяжёлый (100+ МБ), память ест щедро;
- идеален для прототипа или когда нужен полный Chrome-рендер.
Tauri — лёгкий и на Rust
// Tauri: системный WebView + Rust-ядро
invoke("save_file", { path, data })
.then((ok) => console.log("saved", ok));
// бэкенд-функция на Rust
#[tauri::command]
fn save_file(path: String, data: Vec<u8>) -> bool { ... }
💡
IPC — мост между интерфейсом и «системным» процессом: UI отправляет запрос, ядро выполняет файловые операции. Держите секреты и доступы в ядре, а не в клиентском js.
ℹ️
Безопасность: код из интернета в desktop — риск (remote code execution). Ограничивайте источники, не отдавайте произвольные URL в main process, подписывайте сборки.