Repolode
egoist

egoist/mygo

Фреймворк на Go для создания десктопных приложений с веб-интерфейсом в системном webview или нативным UI, который рендерится на GPU.

Звёзды
5,015
Форки
303
Открытые issues
100
Последний коммит
23 часа назад

Что это?

MyGo позволяет создавать десктопные приложения на Go с окнами двух типов: одни отображают веб-страницу в webview, предоставляемом операционной системой (WKWebView в macOS, WebKitGTK в Linux, WebView2 в Windows), а другие используют нативный UI toolkit на Go, который MyGo рендерит на GPU без HTML, JavaScript и webview. В одном окне или приложении можно сочетать оба типа.

Для веб-интерфейсов Go-сервисы связываются с TypeScript-клиентом, сгенерированным из кода на Go. Поддерживаются типизированный IPC, каналы для потоковой передачи значений и типизированные события. Проект написан на чистом Go без cgo, поэтому его можно кросс-компилировать на любой машине. Desktop API охватывают окна, меню, системный трей, диалоги, уведомления, глобальные сочетания клавиш, deep links, ассоциации файлов и системный акцентный цвет.

В проект также входят инструменты для упаковки и распространения приложений: app bundles, образы дисков, установщики для Windows, пакеты Debian, подписание кода, нотариальное заверение и подписанные автообновления с delta updates.

Ключевые возможности

  • 01Окна с веб-страницами, из которых можно вызывать Go-код через сгенерированный TypeScript-клиент.
  • 02Нативный UI toolkit на Go с компоновкой flexbox и grid, виджетами и виртуализированными списками.
  • 03Чистый Go без cgo, позволяющий собирать приложения для разных платформ на любой машине.
  • 04Desktop API для меню, системного трея, диалогов, уведомлений, глобальных сочетаний клавиш и deep links.
  • 05Упаковка и подписанные автообновления для macOS, Windows и Linux.

Сценарии использования

  • Создание десктопного инструмента, для которого команде нужен Go и для серверной логики, и для UI.
  • Разработка лёгких приложений с нативным UI, которые быстро запускаются и потребляют мало памяти.
  • Выпуск кроссплатформенного десктопного приложения с подписанием кода и автообновлениями.
  • Добавление в десктопное приложение веб-интерфейса на базе Go с использованием системного webview.

Быстрый старт

  1. 1

    Установите Go 1.27.3 или новее и Bun

  2. 2

    Создайте приложение веб-фронтенда

    bunx mygo-cli init my-app
  3. 3

    Перейдите в папку проекта

    cd my-app
  4. 4

    Запустите сервер разработки

    bun run dev

Что важно знать

  • Для быстрого старта требуются Go 1.27.3 или новее и Bun.

В выпуске Repolode Weekly

В подборках

Темы

Частые вопросы

Что такое mygo?
Фреймворк на Go для создания десктопных приложений с веб-интерфейсом в системном webview или нативным UI, который рендерится на GPU. MyGo позволяет создавать десктопные приложения на Go с окнами двух типов: одни отображают веб-страницу в webview, предоставляемом операционной системой (WKWebView в macOS, WebKitGTK в Linux, WebView2 в Windows), а другие используют нативный UI toolkit на Go, который MyGo рендерит на GPU без HTML, JavaScript и webview. В одном окне или приложении можно сочетать оба типа.
mygo можно использовать бесплатно? Какая у него лицензия?
mygo распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
mygo всё ещё поддерживается?
Активно поддерживается. Последний коммит в mygo — 6 нояб. 2026 г..
Для чего можно использовать mygo?
Создание десктопного инструмента, для которого команде нужен Go и для серверной логики, и для UI. Разработка лёгких приложений с нативным UI, которые быстро запускаются и потребляют мало памяти. Выпуск кроссплатформенного десктопного приложения с подписанием кода и автообновлениями. Добавление в десктопное приложение веб-интерфейса на базе Go с использованием системного webview.
Как установить mygo?
Установите Go 1.27.3 или новее и Bun Создайте приложение веб-фронтенда: bunx mygo-cli init my-app Перейдите в папку проекта: cd my-app Запустите сервер разработки: bun run dev
Где скачать mygo?
Исходный код и инструкции по установке — на GitHub: https://github.com/egoist/mygo

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Rust-движок для кроссплатформенных нативных интерфейсов: пишите приложения на Rust или TSX и используйте виджеты каждой платформы.

1,9 тыс.+987 за неделю112RustOtherАктивно поддерживаетсяОбновлён 23 часа назад

Кроссплатформенный движок нативных интерфейсов: логика приложения работает на Go, а каждая платформа отрисовывает интерфейс своими нативными представлениями.

198+32 за неделю9GoOtherАктивно поддерживаетсяОбновлён вчера