Besides Java there are clients available for several other languages. Most of the clients use the XML protocol over socket, whereas the Ruby client is using the Webservice interface.
Since both protocols are open, it is quite easy to implement new clients for other languages. If you for instance think, that there is a definitive need for an SQLSpaces client in Whitespace, go ahead, implement it and tell us!
Currently we have clients for:
Not all clients provide each feature of the native Java client. This is because the clients were developed in the last years during the development of the server. So the later clients have in general more features. However, some of the features are also missing in the clients, because they were not needed in the use cases, for which we developed them. So if you need a particular feature that is still missing in one of the clients, feel free to just add the missing code and contribute to the project! The following table shows the differences:
| Java | Prolog | PHP | Ruby | C# | |
|---|---|---|---|---|---|
| Simple Operations (read, write, take, update) | Yes | Yes | Yes | Yes | Yes |
| Blocking Commands (waitToTake, waitToRead) | Yes | Yes | Yes | Yes | Yes |
| Expiration of Tuples | Yes | Yes | Yes | Yes | Yes |
| ID-Queries | Yes | Yes | Yes | Yes | Yes |
| Bounded Queries | Yes | Yes | Yes | Yes | Yes |
| Wildcard Fields | Yes | Yes | Yes | Yes | Yes |
| XML fields | Yes | Yes | Yes | Yes | No |
| Callbacks | Yes | Yes | No | Yes | Yes |
| Versioning | Yes | No | Yes | Yes | No |
| Unified Spaces | Yes | No | Yes | No | Yes |
| Inverse Fields | Yes | Yes | Yes | No | No |
| Semiformal Fields | Yes | Yes | Yes | No | No |
| Binary fields | Yes | No | Yes | No | No |
| Rights Management | Yes | No | Yes | No | No |
| SSL Connection | Yes | No | No | No | No |
| Object Tuple Mapper | Yes | No | No | No | No |
| Iterative Read-All | Yes | No | No | No | No |