Repolode
egoist

egoist/mygo

Um framework Go para criar apps desktop com frontend web no webview do sistema operacional ou UI nativa renderizada na GPU.

Estrelas
5,015
Forks
303
Issues abertas
100
Último commit
há 21 horas

O que é?

MyGo permite criar aplicativos desktop em Go com dois tipos de janela: uma exibe uma página web no webview fornecido pelo sistema operacional (WKWebView no macOS, WebKitGTK no Linux e WebView2 no Windows); a outra usa um toolkit de UI nativa em Go, renderizada pela MyGo na GPU, sem HTML, JavaScript ou webview. Uma mesma janela ou app pode combinar os dois tipos.

Para frontends web, serviços Go são vinculados e expostos por meio de um cliente TypeScript gerado a partir do código Go, com IPC tipado, canais para transmitir valores e eventos tipados. O projeto é escrito em Go puro, sem cgo, então pode ser compilado de forma cruzada em qualquer máquina. As APIs desktop incluem janelas, menus, bandeja do sistema, diálogos, notificações, atalhos globais, deep links, associações de arquivos e cor de destaque do sistema.

O projeto também inclui ferramentas de empacotamento e distribuição: bundles de app, imagens de disco, instaladores do Windows, pacotes Debian, assinatura de código, notarização e atualizações automáticas assinadas com atualizações delta.

Recursos principais

  • 01Janelas com páginas web que chamam código Go por meio de um cliente TypeScript gerado.
  • 02Toolkit de UI nativa escrito em Go, com layouts flexbox e grid, widgets e listas virtualizadas.
  • 03Go puro, sem cgo, permitindo compilações multiplataforma em qualquer máquina.
  • 04APIs desktop para menus, bandeja do sistema, diálogos, notificações, atalhos globais e deep links.
  • 05Empacotamento e atualizações automáticas assinadas para macOS, Windows e Linux.

Casos de uso

  • Criar uma ferramenta desktop quando a equipe quer usar Go tanto na lógica de backend quanto na UI.
  • Criar apps leves com UI nativa, que abrem rapidamente e consomem pouca memória.
  • Distribuir um app desktop multiplataforma com assinatura de código e atualizações automáticas.
  • Adicionar um frontend web com backend em Go a um app desktop usando o webview do sistema.

Início rápido

  1. 1

    Instale Go 1.27.3 ou superior e Bun

  2. 2

    Crie um app de frontend web

    bunx mygo-cli init my-app
  3. 3

    Acesse a pasta do projeto

    cd my-app
  4. 4

    Inicie o servidor de desenvolvimento

    bun run dev

Antes de usar

  • O início rápido requer Go 1.27.3 ou superior e Bun.

Destaque no Repolode Weekly

Em coleções

Tópicos

Perguntas frequentes

O que é mygo?
Um framework Go para criar apps desktop com frontend web no webview do sistema operacional ou UI nativa renderizada na GPU. MyGo permite criar aplicativos desktop em Go com dois tipos de janela: uma exibe uma página web no webview fornecido pelo sistema operacional (WKWebView no macOS, WebKitGTK no Linux e WebView2 no Windows); a outra usa um toolkit de UI nativa em Go, renderizada pela MyGo na GPU, sem HTML, JavaScript ou webview. Uma mesma janela ou app pode combinar os dois tipos.
mygo é gratuito? Qual é a licença?
mygo é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
mygo ainda é mantido?
Manutenção ativa. O último commit de mygo foi em 6 de nov. de 2026.
Para que posso usar mygo?
Criar uma ferramenta desktop quando a equipe quer usar Go tanto na lógica de backend quanto na UI. Criar apps leves com UI nativa, que abrem rapidamente e consomem pouca memória. Distribuir um app desktop multiplataforma com assinatura de código e atualizações automáticas. Adicionar um frontend web com backend em Go a um app desktop usando o webview do sistema.
Como instalar mygo?
Instale Go 1.27.3 ou superior e Bun Crie um app de frontend web: bunx mygo-cli init my-app Acesse a pasta do projeto: cd my-app Inicie o servidor de desenvolvimento: bun run dev
Onde consigo mygo?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/egoist/mygo

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados