REC RPC library
REC RPC library

The Robotics Equipment Corporation (REC) remote procedure call (RPC) library is a system for inter-process communication. Processes (clients) connect to a server over network (TCP). Data is exchanged via network, local sockets or shared memory.


The server defines topics all participants can publish data to. If a participant subscribes to a topic it is informed whenever the topic data changes. It has to be outlined that on subscribtion it is informed about the current topic data which is stored by the server.

The server also defines RPC methods. These methods can be called by the clients in a blocking or non-blocking way to execute the accordant function in the server. The clients get informed about the result.

Why a new RPC library?

The reason for writing this libary is simple. No other library out there fit our needs. Our main concern was (and still is) to interface a ROS system running on a Linux system with a Qt based GUI running on Windows. Our first try was to port ROS to Windows. This failed because we found out that the network connection established by ROS is not robust against disturbances as seen with wireless networks. Furthermore ROS connects via multiple ports which conflicts with the restricted networks found in industrial environments. The very good communication framework ICE could not be used due to restrictive (and expensive) licensing issues. In the end we found us writing this library, which has the following advantaches:

Simple client/server examples


rvis like GUI with rec_rpc and Qt

We stripped down one of our current projects to show a real world example of how to interface a ROS system to a (Windows) Qt GUI.


The GUI lets you