Tauri – nowy rustowy framework może zastąpić Electrona
Możliwość dostarczania aplikacji webowych na desktopy z użyciem opracowanego przez GitHub frameworka Electron przyciągnęła uwagę nawet największych graczy: działa w ten sposób między innymi Visual Studio Code, desktopowe klienty Microsoft Teams, Slacka. Skype’a, What’sAppa czy Discorda. Electronowi wyrosła jednak pod bokiem silna konkurencja w postaci Tauri.
Aplikacje webowe na pulpitach
Electron otworzył przez twórcami aplikacji webowych nowe możliwości w postaci zapewnienia dość wygodnego, sposobu, aby raz opracowany na potrzeby przeglądarek frontend mógł zostać przeniesiony do środowiska systemu operacyjnego. W dużej mierze są to oczywiście pozory – Electron pozwala po prostu uruchomić instancję silników wykorzystywanych w Chromium i renderować stronę w systemowym oknie. Dzięki temu aplikację, z której użytkownik może korzystać w takim sam sposób, jak z natywnego oprogramowania, można przygotować z użyciem JavaScript, HTML-a i CSS-a.
Wciąż jednak aplikacje dostarczone na pulpity z użyciem Electrona to aplikacje przeglądarkowe, a to pociąga za sobą pewne problemy. Po pierwsze, każda kolejna aplikacja to kolejna uruchomiona instancja Chromium, co przekłada się na zwiększone zapotrzebowanie na pamięć operacyjną. Po drugie, sprawność działania i responsywność electronowych aplikacji pozostawia sporo do życzenia i nijak nie ma startu do prawdziwie natywnych aplikacji. Na przykład takich, których UI zostało opracowane na przykład przy użyciu Qt, który – podobnie jak sam Electron – pozwala kierować aplikacje na desktopy z Windowsem, macOS-em i LInuksem.
Tauri lepsze niż Electron?
Nie uszło to uwadze tak programistów, jak i użytkowników, co potwierdzają wnioski z badań State of JavaScript 2022. Dość nieoczekiwanie na czoło rankingu cieszących się największych zainteresowaniem narzędzi pozwalających na budowanie aplikacji (zarówno mobilnych, jak i desktopowych) wysunął się opensource’owy framework Tauri. Dlaczego nieoczekiwanie? Otóż Tauri to narzędzie relatywnie nowe. Stabilna wersja 1.0 pojawiła się w połowie czerwca 2022 r. Co zatem takiego ma Tauri, czego nie ma Electron?
Po pierwsze, backend Tauri został napisany w Ruście, co po pierwsze przyciągnęło uwagę programistów, a po drugie pozwala na efektywniejsze zarządzanie pamięcią, zwłaszcza w porównaniu z Electronem, który napisany został w C++ i Objective-C. Ponadto Tauri wprowadza system komend, dzięki któremu aplikacje webowe mogą wywoływać funkcje Rusta. Po prostu cały backend Tauri bazuje na niewielkich, wydajnych rustowych bibliotekach wystawiających API, za pośrednictwem których w interakcje mogą wchodzić liczne frontendowe frameworki.
W ten sposób dochodzimy do drugiej ważnej cechy Tauri, która może stanowić zachętę do migracji dla dotychczasowych użytkowników Electrona. Tauri już teraz oferuje kompatybilność z licznymi frontendowymi frameworkami, a w przyszłości lista obsługiwanych narzędzi będzie rozbudowywana. Aktualnie dzięki Tauri można na desktopach uruchamiać frontendy przygotowane z użyciem JS-a, HTML-a, CSS oraz Node.js, Cargo a także Next.js, SvelteKit oraz Vite. Ponadto przygotowano dokumentację pozwalającą na migrację już istniejących projektów.
Warto dodać, że rustowy backend to dopiero pierwszy etap rozwoju Tauri. Twórcy już teraz deklarują, że docelowo framework ma być „poliglotą”, tzn. nie uzależniać się od wyłącznie jednego języka, jak to ma miejsce w większości frontendowych frameworków. W „nie tak odległej” przyszłości Tauri będzie kompatybilny z m.in. Pythonem, Go, Nim czy C#. Twórcy rozwijają bowiem mechanizm bindowania, dzięki czemu uda się powiązać wiele różnych języków z webview i automatycznie aktualizować stany poszczególnych komponentów.
Zdecyduje wydajność
Jest oczywiście za wcześnie, by przekonywać, że Tauri zastąpi Electrona. Bez wątpienia jednak ma cechy stanowiące przewagę nad frameworkiem opracowanym przez GitHuba. Zwłaszcza że są to różnice ważne także dla końcowych użytkowników, dla których odczuwalna jest niska responsywność frontendów przeniesionych na desktop z użyciem Electrona i zwiększone zużycie RAM-u. Rozwojowi Tauri może sprzyjać opensource’owy charakter całego przedsięwzięcia i obszerna lista sponsorów.