The XPA Messaging System

The XPA messaging system provides seamless communication between many kinds of Unix programs, including X programs and Tcl/Tk programs. It also provides an easy way for users to communicate with these XPA-enabled programs by executing XPA client commands in the shell or by utilizing such commands in scripts. Because XPA works both at the programming level and the shell level, it is a powerful tool for unifying any analysis environment: users and programmers have great flexibility in choosing the best level or levels at which to access XPA services, and client access can be extended or modified easily at any time.

A program becomes an XPA-enabled server by defining named points of public access through which data and commands can be exchanged with other client programs (and users). Using standard TCP sockets as a transport mechanism, XPA supports both single-point and broadcast messaging to and from these servers. It supports direct communication between XPA clients and servers, or indirect communication via an intermediate message bus emulation program. Host-based access control is implemented, as is as the ability to communicate with XPA servers across a network.

Because XPA consists of a library and a set of user programs, it is most appropriately built from source. XPA has been ported to Solaris, Linux, Mac OSX (darwin) and Windows 98/NT/2000/XP. Once the source code tar file is retrieved, XPA can be built and installed easily using standard commands:

  ./configure --prefix=[installdir] 	# configuration
  make					# build the software
  make install				# install in [installdir]

Latest Release

XPA has moved to GitHub! Please visit:

for the latest version.


The XPA mechanism has been used to develop the ds9 image display program.

The original XPA rev. 1 system was a layered interface for X Windows built on top of the Xt selection interface. PostScript versions of old papers about XPA revision 1 are available: