03.02.2023

Tauri 1.0 — конкурирующая с Electron платформа для создания пользовательских приложений

Опубликован выпуск проекта Tauri 1.0, развивающего фреймворк для создания многоплатформенных пользовательских приложений с графическим интерфейсом, построенных с использованием web-технологий. По своей сути Tauri напоминает платформу Electron, но отличается иной архитектурой и более низким потреблением ресурсов. Код проекта написан на языке Rust и распространяется под лицензией Apache 2.0.

Логика работы приложения определяется на JavaScript, HTML и CSS, но в отличие от web-приложений, программы на базе Tauri поставляются в виде самодостаточных исполняемых файлов, не привязанных к браузеру и компилируемых для различных операционных систем. Платформа также предоставляет инструменты для организации автоматической доставки и установки обновлений. Подобный подход позволяет разработчику не заботиться о портировании приложения для различных платформ и упрощает поддержание приложения в актуальном состоянии.

В приложении могут использоваться любые web-фреймворки для построения интерфейса, выдающие на выходе HTML, JavaScript и CSS. Подготовленный на базе web-технологий фронтэнд привязывается к бэкенду, выполняющему такие функции, как организация взаимодействия с пользователем и выполнение web-приложения. Для обработки окон на платформе Linux используется библиотека GTK (биндинг GTK 3 Rust), а в macOS и Windows развиваемая проектом библиотека Tao, написанная на Rust.

Для формирования интерфейса применяется библиотека WRY, представляющая собой обвязку над браузерным движком WebKit для macOS, WebView2 для Windows и WebKitGTK для Linux. Библиотека также предлагает набор готовых компонентов для реализации таких элементов интерфейса, как меню и панель задач. В создаваемом приложении можно можно использовать многооконный интерфейс, сворачивание в системный лоток и вывод уведомлений через штатные системные интерфейсы.

Первый выпуск платформы позволяет собирать приложения для Windows 7/8/10 (.exe, .msi), Linux (.deb, AppImage) и macOS (.app, .dmg). В разработке поддержка iOS и Android. Исполняемый файл может быть заверен цифровой подписью. Для сборки и разработки предлагается CLI-интерфейс, дополнение к редактору VS Code и набор сборочных сценариев для GitHub (tauri-action). Для расширения базовых компонентов платформы Tauri могут использоваться плагины.

Из отличий от платформы Electron отмечается значительно более компактный установщик (3.1 MB в Tauri и 52.1 MB в Electron), низкое потребление памяти (180 MB против 462 MB), высокая скорость запуска (0.39 секунд против 0.80 секунд), использование бэкенда на Rust вместо Node.js, дополнительные меры защиты и изоляции (например, Scoped Filesystem для ограничения доступа к файловой системе).

Источник.