Introduction
Advocacy

This is the homepage of the GTK-server. The GTK-server is a free, open-source project, which offers a stream-oriented interface to the GTK libraries, enabling access to graphical user interfaces for shellscripts and interpreted programming languages using either GTK 1.x or 2.x. It was inspired by Sun's DeskTop KornShell (dtksh) of the Common Desktop Enviroment (CDE) for Unix.

Currently the following languages have been tested successfully with the GTK-server:

How does it work? The GTK-server can be compiled as a standalone binary, which is able to communicate by a message queue, a 2-way pipe, a named pipe or by a TCP/UDP port. The script invokes this binary, sets up a queue, pipe or a TCP/UDP connection and prints the GTK call in plain text to the queue, pipe or socket. The GTK-server then sends information back which can be used in the program or script.

Instead, the GTK-server also can be compiled as a shared object or DLL, from which the function 'gtk' can be imported. This function accepts GTK calls as a plain text argument.

There is also a configuration file, in which the user of the GTK-server must describe the API call he wants to invoke. In the configfile every API call must be defined; the type of callback signal must be set, the return value, the number of arguments and the type of these arguments. If you are not familiar with the GTK API, you can download a default configfile from this place.

The configfile also defines which GTK libraries should be used. Next to the regular GTK libraries any library can be specified, like Glade, GtkMozEmbed, GtkGlArea, GtkGlExt, but also libc, libmikmod and so on!

 

Below a summary of advantages when using the GTK-server.

  • No need to learn C or C++, you can stick to your favorite programming language
  • No need to hack the source of existing interpreters to realize GUI programming
  • High flexibility in creating GUI's, e.g. not limited to dialogs
  • Full GTK API available, the user can extend the 'gtk-server.cfg' file by himself
  • Access to both GTK 1.x and GTK 2.x
  • Convenient GTK test tool, easy to learn GTK programming
  • Mix 64-bit userinterfaces with your 32-bit client programs