Je voudrais créer une interface graphique dans Electron pour une application de bureau écrite en Go (actuellement c'est un outil en ligne de commande).
Quelle est la convention pour communiquer entre les processus Electron et Go?
Est-ce que l'utilisation du binaire Go comme API fonctionnerait? Une sorte de communication websocket?
L'interaction d'une application écrite en électron avec son backend est exactement comme un navigateur Web, vous avez donc les mêmes options (Web Api, Web Sockets, Ajax, etc.)
Vous pouvez utiliser go-astilectron il vous permet de créer des applications GUI multiplateformes avec GO et HTML/JS/CSS (propulsé par Electron) ( divulgation: I ' m l'auteur )
Vous pouvez exécuter votre application de ligne de commande à partir de votre application Electron via child_process.spawn
et communiquez avec lui via stdin
/stdout
.
Murloc Est un wrapper Electron pour Golang pour le rendre facile pour ce type d'application pour Mac. Ils travaillent sur Windows et recherchent des contributions pour les autres plates-formes.
De même que Murlock, puis-je oser suggérer Webview bibliothèque. C'est un wrapper mince sur Webkit et MSHTML qui fonctionne sur Windows 7+, MacOS, Linux et OpenBSD.
Il est beaucoup plus petit et plus facile qu'Electron. Les applications résultantes sont également plus petites et moins gourmandes en mémoire.
Vous pouvez consulter https://github.com/zserge/webview/tree/master/examples/todo-go pour un exemple d'application Todo qui se compile en un petit binaire autonome.