Технический обзор
Высокоуровневая архитектура и путеводитель по кодовой базе Wails v3
Добро пожаловать в техническую документацию Wails v3
Этот раздел посвящён не правилам сообщества или созданию пул-реквестов. Вместо этого он подробно рассматривает, как устроен Wails v3, чтобы вы могли быстро освоиться в кодовой базе и уверенно приступить к работе над ней.
Планируете ли вы исправить среду выполнения, расширить CLI, создать новые шаблоны или просто разобраться во внутреннем устройстве — на следующих страницах вы найдёте необходимый технический контекст.
Высокоуровневая архитектура
Основа каждого приложения Wails — код на Go, скомпилированный в нативный исполняемый файл. Он отвечает за логику приложения, интеграцию с системой и критичные к производительности операции.
Пользовательский интерфейс создаётся с помощью стандартных веб-технологий (React, Vue, Svelte, Vanilla, …) и отображается в облегчённом системном WebView (WebKit в Linux/macOS, WebView2 в Windows).
Работающий в памяти мост без копирования обеспечивает вызовы Go⇄JavaScript с автоматическим преобразованием типов, распространением событий и передачей ошибок.
wails3 управляет созданием проектов, сервером разработки с автоматической перезагрузкой, сборкой ресурсов, кросс-компиляцией и созданием пакетов (deb, rpm, AppImage, msi, dmg…).
Обзор архитектуры
Wails v3 — сквозной поток выполнения
[Место для схемы сквозного потока выполнения]
На схеме показан сквозной поток выполнения:
- CLI управляет генерацией, сервером разработки, компиляцией и созданием пакетов.\
- Система привязок создаёт связующий код, который позволяет веб-фронтенду вызывать функции бэкенда на Go.\
- Во время разработки сервер ресурсов проксирует запросы на сервер разработки фреймворка, а в рабочей среде обслуживает встроенные файлы.\
- Во время выполнения среда выполнения для настольных приложений управляет окнами и API операционной системы, а мост передаёт сообщения между Go и JavaScript.
Что рассматривается в этой документации
| Тема | Почему это важно |
|---|---|
| Структура кодовой базы | Карта каталогов /v3 и описание взаимодействия модулей. |
| Внутреннее устройство среды выполнения | Управление окнами, системные API, обработчик сообщений и платформенные адаптеры. |
| Сервер ресурсов и разработки | Как веб-ресурсы обслуживаются при разработке и встраиваются для рабочей среды. |
| Конвейер сборки и создания пакетов | Рабочий процесс на основе Taskfile, кросс-платформенная компиляция и создание установщиков. |
| Система привязок | Конвейер статического анализа, создающий типобезопасные привязки Go⇄TS. |
| Система шаблонов | Архитектура генератора, на которой работает wails3 init -t <framework>. |
| Тестирование и CI | Инфраструктура модульных и интеграционных тестов, GitHub Actions и рекомендации по использованию детектора состояний гонки. |
| Расширение Wails | Добавление сервисов, шаблонов или подкоманд CLI. |
Каждая последующая страница подробно рассматривает эти области, приводя конкретные примеры кода, схемы и ссылки на соответствующие исходные файлы.
Приятного изучения — и добро пожаловать во внутреннее устройство Wails v3!