Die Veröffentlichung der Tauri 1.0 Version wurde bekannt gegeben, die ein Framework zur Erstellung plattformübergreifender Desktop-Anwendungen mit grafischen Benutzeroberflächen auf Basis von Web-Technologien weiterentwickelt. Im Kern ähnelt Tauri der Electron-Plattform, unterscheidet sich jedoch durch eine andere Architektur und einen geringeren Ressourcenverbrauch. Der Code des Projekts ist in Rust geschrieben und wird unter der Apache 2.0-Lizenz veröffentlicht.
Die Logik der Anwendung wird mit JavaScript, HTML und CSS definiert, aber im Gegensatz zu Webanwendungen werden Tauri-basierte Programme als eigenständige ausführbare Dateien bereitgestellt, die nicht an einen Browser gebunden und für verschiedene Betriebssysteme kompiliert sind. Die Plattform bietet auch Werkzeuge zur automatischen Bereitstellung und Installation von Updates. Diese Herangehensweise ermöglicht es Entwicklern, sich um die Portierung der Anwendung auf verschiedene Plattformen keine Sorgen zu machen, und erleichtert die Aufrechterhaltung der Anwendung in einem aktuellen Zustand.
In der Anwendung können beliebige Web-Frameworks zur Erstellung der Benutzeroberfläche verwendet werden, die HTML, JavaScript und CSS ausgeben. Das auf Web-Technologien basierende Frontend wird mit dem Backend verbunden, das Funktionen wie die Interaktion mit dem Benutzer und die Ausführung der Webanwendung bereitstellt. Für die Fensterverwaltung auf der Linux-Plattform wird die GTK-Bibliothek (GTK 3 Rust-Bindung) verwendet, während in macOS und Windows die von dem Projekt entwickelte Tao-Bibliothek, die in Rust geschrieben ist, genutzt wird.
Zur Gestaltung der Benutzeroberfläche wird die WRY-Bibliothek eingesetzt, die eine Abstraktion über die WebKit-Browser-Engine für macOS, WebView2 für Windows und WebKitGTK für Linux bietet. Die Bibliothek stellt auch eine Reihe vorgefertigter Komponenten zur Verfügung, um Elemente wie Menüs und Taskleisten zu implementieren. In der erstellten Anwendung kann eine mehrfenstrige Benutzeroberfläche, Minimierung in den System-Tray und die Ausgabe von Benachrichtigungen über die integrierten System-Schnittstellen verwendet werden.
Die erste Version der Plattform ermöglicht das Erstellen von Anwendungen für Windows 7/8/10 (.exe, .msi), Linux (.deb, AppImage) und macOS (.app, .dmg). Die Unterstützung für iOS und Android ist in Entwicklung. Die ausführbare Datei kann mit einer digitalen Signatur signiert werden. Für den Aufbau und die Entwicklung wird eine CLI-Schnittstelle, ein Plugin für den VS Code-Editor und eine Sammlung von Build-Skripten für GitHub (tauri-action) angeboten. Zur Erweiterung der Basis-Komponenten der Tauri-Plattform können Plugins verwendet werden.
Zu den Unterschieden zur Electron-Plattform zählt ein deutlich kompakterer Installer (3,1 MB bei Tauri und 52,1 MB bei Electron), ein geringerer Speicherverbrauch (180 MB gegenüber 462 MB), eine höhere Startgeschwindigkeit (0,39 Sekunden gegenüber 0,80 Sekunden), die Verwendung eines Backends in Rust anstelle von Node.js, zusätzliche Schutz- und Isolationsmaßnahmen (zum Beispiel Scoped Filesystem zur Einschränkung des Zugriffs auf das Dateisystem).
Quelle: opennet.ru
