Repolode
egoist

egoist/mygo

Framework de Go para crear aplicaciones de escritorio con una interfaz web en el webview del sistema operativo o una interfaz nativa dibujada en la GPU.

Estrellas
5,015
Forks
303
Issues abiertos
100
Último commit
hace 23 horas

¿Qué es?

MyGo permite crear aplicaciones de escritorio en Go con dos tipos de ventanas: unas muestran una página web en el webview que ya proporciona el sistema operativo (WKWebView en macOS, WebKitGTK en Linux y WebView2 en Windows), y otras usan un toolkit de interfaz nativa en Go que MyGo dibuja en la GPU, sin HTML, JavaScript ni webview. Una misma ventana o aplicación puede combinar ambos tipos.

Para las interfaces web, los servicios de Go se vinculan y se exponen mediante un cliente TypeScript generado a partir del código Go, con IPC tipado, canales para transmitir valores y eventos tipados. El proyecto está escrito íntegramente en Go, sin cgo, por lo que se puede compilar de forma cruzada desde cualquier máquina. Las API de escritorio abarcan ventanas, menús, bandeja del sistema, diálogos, notificaciones, atajos globales, enlaces profundos, asociaciones de archivos y el color de acento del sistema.

El proyecto también incluye herramientas de empaquetado y distribución: bundles de aplicaciones, imágenes de disco, instaladores de Windows, paquetes Debian, firma de código, notarización y actualizaciones automáticas firmadas con actualizaciones delta.

Funciones clave

  • 01Ventanas con páginas web que pueden llamar a código Go mediante un cliente TypeScript generado.
  • 02Toolkit de interfaz nativa escrito en Go, con diseño flexbox y grid, widgets y listas virtualizadas.
  • 03Go puro, sin cgo, que permite compilar para distintas plataformas desde cualquier máquina.
  • 04API de escritorio para menús, bandeja del sistema, diálogos, notificaciones, atajos globales y enlaces profundos.
  • 05Empaquetado y actualizaciones automáticas firmadas para macOS, Windows y Linux.

Casos de uso

  • Crear una herramienta de escritorio cuando el equipo quiere usar Go tanto para la lógica de backend como para la interfaz.
  • Crear aplicaciones ligeras con interfaz nativa que se abran rápido y consuman poca memoria.
  • Distribuir una aplicación de escritorio multiplataforma con firma de código y actualizaciones automáticas.
  • Añadir a una aplicación de escritorio una interfaz web respaldada por Go que use el webview del sistema.

Inicio rápido

  1. 1

    Instala Go 1.27.3 o una versión posterior y Bun

  2. 2

    Crea una aplicación de frontend web

    bunx mygo-cli init my-app
  3. 3

    Entra en la carpeta del proyecto

    cd my-app
  4. 4

    Inicia el servidor de desarrollo

    bun run dev

Antes de usarlo

  • El inicio rápido requiere Go 1.27.3 o una versión posterior y Bun.

Destacado en Repolode Weekly

En colecciones

Temas

Preguntas frecuentes

¿Qué es mygo?
Framework de Go para crear aplicaciones de escritorio con una interfaz web en el webview del sistema operativo o una interfaz nativa dibujada en la GPU. MyGo permite crear aplicaciones de escritorio en Go con dos tipos de ventanas: unas muestran una página web en el webview que ya proporciona el sistema operativo (WKWebView en macOS, WebKitGTK en Linux y WebView2 en Windows), y otras usan un toolkit de interfaz nativa en Go que MyGo dibuja en la GPU, sin HTML, JavaScript ni webview. Una misma ventana o aplicación puede combinar ambos tipos.
¿mygo es gratuito? ¿Qué licencia tiene?
mygo es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿mygo sigue mantenido?
Mantenimiento activo. El último commit de mygo fue el 6 nov 2026.
¿Para qué puedo usar mygo?
Crear una herramienta de escritorio cuando el equipo quiere usar Go tanto para la lógica de backend como para la interfaz. Crear aplicaciones ligeras con interfaz nativa que se abran rápido y consuman poca memoria. Distribuir una aplicación de escritorio multiplataforma con firma de código y actualizaciones automáticas. Añadir a una aplicación de escritorio una interfaz web respaldada por Go que use el webview del sistema.
¿Cómo se instala mygo?
Instala Go 1.27.3 o una versión posterior y Bun Crea una aplicación de frontend web: bunx mygo-cli init my-app Entra en la carpeta del proyecto: cd my-app Inicia el servidor de desarrollo: bun run dev
¿Dónde consigo mygo?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/egoist/mygo

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados