The LinuxTuples project is an open-source server for tuple space, available for free use.
A tuple space functions like a community bulletin board. It is a database of ordered lists of typed values. For instance, a tuple may contain an integer, a float, and a string. If someone is waiting for a specific message and cannot find it immediately, they can wait or go do something else. Tuples can represent requests for computations, their results, or public knowledge shared by all programs in the entire system. LinuxTuples is written in C, with a client API for Python.
Tuple operations can be achieved through a short list of legal interactions that a client can have with the tuple space. These operations include PUT and GET. A client can construct a tuple and put it into the tuple space. They can also construct a template to match a subset of tuples using wildcards for some fields and remove the first tuple from the tuple space that matches the template. If no matching tuple is found, the client is blocked until a match exists.
A client can also build a template and wait for a matching tuple using READ. This operation takes a copy of the tuple, leaving it in the tuple space. There are also non-blocking versions of GET and READ, GET_NB and READ_NB, respectively. In addition to these fundamental operations, DUMP and LOG are also available for getting a list of tuples currently in the space and receiving a continuous log of what the tuple server is doing, respectively.
A template is used for a GET or READ operation to put wildcards in some fields. C can easily accomplish this by specifying the form of a tuple or template using a printf-like format string and filling in the fields that need values. Python's tuples are naturally mapped to LinuxTuples tuples, using None as a wildcard.
The latest release of LinuxTuples includes a fix for a typo in fft.c and the addition of "make install" to the Makefile.
Version 1.03: N/A