GTK-server

If the GTK-server is compiled as a standalone program binary, it allows five different interfaces: standard input (stdin), first in, first out (FIFO) (named pipe), inter-process communication (IPC) (message queue), Transmission Control Protocol (TCP), or User Datagram Protocol (UDP).

After each request, the GTK-server returns a result, depending on the type of GTK function invoked.

If the GTK-server is compiled as a shared object, it exports the function 'gtk', which must be imported in the client program first.

This leads to a problem for the implementation, because the GTK functions and the corresponding arguments and return values cannot be hardcoded into the GTK-server binary.

Currently, four external foreign function interfaces are supported by GTK-server: libffi, FFCALL,[2] C/Invoke[3] and dyncall.