2016-04-30 3 views
18

Я хотел бы сделать GUI в Electron для настольного приложения, написанного в Go (в настоящее время это инструмент командной строки).Электронный интерфейс для программы Голанга?

Какова конвенция для связи между процессами Electron и Go?

Было бы просто использовать двоичный ключ Go в качестве работы API? Какая-то связь в сети?

ответ

10

Взаимодействие приложения, написанного на электрон с бэкэнд так же, как веб-браузер, поэтому у вас есть такие же параметры (Web API, Web Sockets, Ajax и т.д.)

+2

Я решил использовать https://github.com/googollee/go-socket.io для бэкэнд и обычный socket.io на интерфейсе. Благодаря! – Ashkay

9

Вы можете выполнить командную строку приложение из вашего приложения Electron через child_process.spawn и общайтесь с ним через stdin/stdout.

3

Murlock Является электронным оберткой для Golang, чтобы упростить это приложение для Mac. Они работают над Windows и ищут вклады для других платформ.

+2

Хороший проект, но я не думаю, что это обложка для Electron. Версия mac использует WebKit. В версии Windows используется EdgeHTML. – r03

+0

Murlock - это не электронная оболочка. Это просто пакет Go для создания пользовательского интерфейса с html и css. Но это выглядит очень интересный проект! – Pioz

7

Вы можете использовать go-astilectron она позволяет создавать кросс-платформенных GUI-приложений с помощью GO и HTML/JS/CSS (питание от Electron) (раскрытие: Я автор)

1

Аналогично Murlock, могу ли я осмелиться предложить библиотеку Webview. Это тонкая оболочка Webkit и MSHTML, работающая под управлением Windows 7+, MacOS, Linux и OpenBSD.

Это намного меньше и легче, чем электрон. Также результирующие приложения меньше и меньше голода.

Возможно, вы найдете https://github.com/zserge/webview/tree/master/examples/todo-go для примера приложения Todo, который компилируется в небольшой автономный двоичный файл.