GuiServer

GuiServer is a special tool that makes it relatively easy to implement GUI frameworks for different programming languages.

The program acting, sorry for the tautology, as a GUI server, as a service to provide client applications with a graphical interface. The client is a program, written on any programming language, which has a relatively small library, that runs the GuiServer process, connect to it, and exchanges data with it according to the specified protocol.

The client can communicate with the GUI server in different ways, currently two options are available: via tcp/ip connection or via regular files. In the first case GuiServer creates a tcp/ip socket at startup and starts listening to it, going into standby mode. After establishing a connection with the client, it starts accepting requests to manage elements of the graphical interface. Yet another connection with the client is created immediately, GuiServer use it for feedback: to send information to the client when some events occurs, such as closing the window, pressing the button, etc. In the second case, instead of two sockets, two files are created (by default - in the system directory for temporary files) - and the whole process of interaction occurs by writing/reading in these files.


I started writing GuiServer to make GUI framework for Go language. This framework is called External, you can find it at Github. Besides, I make a similar library for Harbour - mostly for debugging. But it is became clear soon, that the same GUI framework can be done at minimal cost for other languages, too, - for Python, Java, C, and even for Perl and (yes, yes!) for PHP.

The client and server processes can be run on different computers in the network, and this opens the door for quite interesting ways of using this technology.

GuiServer is written on Harbour + HwGUI, and it is a good choice not only because using of this pair is most convenient for me personally. Such an implementation


Applications, based on GuiServer


Comments:       ()       prev.    next.       Add comment
The length of a comment - no more than 4000 characters.
Your name:

Email address:
(not be shown publicly)
 
Input text from an image: