Skip to main content
Версия: Next Version 🚧

Введение

Wails - это проект, позволяющий писать настольные приложения с использованием Go и web технологий.

Считайте, что это легкая и быстрая альтернатива Electron для Go. Вы можете легко создавать приложения с гибкостью и мощностью Go, в сочетании с богатым современным фронтендом.

Возможности

  • Нативные меню, диалоги, темы и прозрачность
  • Поддержка Windows, macOS и linux
  • Встроенные шаблоны для Svelte, React, Preact, Vue, Lit и Vanilla JS
  • Easily call Go methods from JavaScript
  • Automatic Go struct to TypeScript model generation
  • Для Windows не требуется CGO или внешние DLL
  • Горячая перезагрузка, используя мощь Vite
  • Мощный CLI для простого создания, сборки и упаковки приложений
  • Богатая runtime библиотека
  • Приложения, созданные с помощью Wails совместимы с Apple и Microsoft Store

Например, varly - настольное приложение для MacOS и Windows, написанное с помощью Wails. Оно не только великолепно выглядит, но и использует системные меню и полупрозрачность - все, что можно ожидать от современного нативного приложения.

Шаблоны для быстрого начала

Wails поставляется с рядом предварительно настроенных шаблонов, которые позволяют вам быстро создать и запустить ваше приложение. Есть шаблоны для следующих фреймворков: Svelte, React, Vue, Preact, Lit и Vanilla. There are both JavaScript and TypeScript versions for each template.

Системные элементы

Wails использует специально созданную библиотеку для обработки системных элементов, таких как окна, меню, диалоги и так далее, чтобы вы могли создавать хорошо выглядящие, богатые функционалом приложения.

В нем нет встроенного браузера, таким образом, это экономично с точки зрения ресурсов. Вместо этого он использует нативный движок отрисовки для необходимой платформы. На Windows это новая библиотека Microsoft Webview2, основанная на Chromium.

Go & JavaScript Interoperability

Wails automatically makes your Go methods available to JavaScript, so you can call them by name from your frontend! It even generates TypeScript models for the structs used by your Go methods, so you can pass the same data structures between Go and JavaScript.

Библиотека среды выполнения

Wails provides a runtime library, for both Go and JavaScript, that handles a lot of the things modern applications need, like Eventing, Logging, Dialogs, etc.

Опыт разработки в реальном времени

Автоматическая пересборка

Когда вы запускаете ваше приложение в режиме разработки, Wails будет собирать его, но читать ресурсы с диска. Он будет отслеживать любые изменения в вашем коде на Go и автоматически пересобирать и перезапускать приложение.

Автоматическая перезагрузка

Когда будут обнаружены изменения ресурсов вашего приложения, ваше запущенное приложение перезагрузится, почти сразу, отражая ваши изменения.

Разрабатывайте приложение в браузере

Если вы предпочитаете отладку и разработку в браузере, то Wails это умеет. Запущенное приложение также имеет веб-сервер, который запустит ваше приложение в любом, подключенном к нему, браузере. Он будет перезапускаться когда ресурсы на вашем диске изменятся.

Бинарные файлы, готовые к выпуску

Когда вы готовы сделать финальную сборку вашего приложения, CLI соберет всё в один исполняемый файл со всеми ресурсами внутри. На Windows и MacOS есть возможность создать нативный установочный пакет для распространения. Ресурсы, используемые при упаковке (иконка, info.plist, файл manifest'а, и т.д.) являются частью вашего проекта и могут быть изменены, что даёт вам полный контроль над тем, как вы создаете приложение.

Инструментарий

Wails CLI предоставляет легкий способ генерировать, собирать и упаковывать ваши приложения. Оно создаст иконки, соберет ваше приложение с оптимальными параметрами и создаст готовый для распространения исполняемый файл. Выберите из нескольких стартовых шаблонов для быстрого старта!