"Simple RTI (Real-Time Interface)," a library for data sharing between two programs
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.



"Simple Real Time Interface," temporary name inspired by other data-transfer systems.

What is it?

A simple, portable software solution to allow data-transfer between applications, either running on the same machine or separate machines. Can be used for virtual simulations of shared systems, IoT systems, and other applications.

Unlike similar solutions, is not built for efficiency at the expense of usability: data messages are sent and received as "string" representations of JSON format, to allow flexible data representation without re-compilation. This software library includes API to help format strings properly, but to extract data requires documentation between users to understand the expected content of messages.

How does it work?


First, must run "RTI" as the central server that simulations must connect to. This can be run on any machine. The original Java implementation does not need to be rewritten for applications in other languages.

This can be started by running the included pre-compiled .jar file.


Second, must use "RTILib" library in your application to connect to the RTI. RTILib will utilize socket connections to connect to the RTI, the user must specifiy the "hostname" and "portnumber" (output when running the RTI), otherwise the details of the connection are not required to be understood by the user.

The "RTILib" must continue to be used to create and send/receive messages from the RTI. The application must "subscribe" to a message by name in order to receive updated messages of that type.

The "RTILib" must be re-written in other languages if exported versions in this repository are not supported.

The "RTILib" and its API functions are included in the pre-compiled .jar file.


An example GUI interface, treated as a application that uses "RTILib" to connect to the "RTI." Shows the "hostname" and "portnumber," and a list of applications connected, and a history of messages received by the RTI.

Currently, the included compiled .jar file will automatically start "ExampleServerGUI" as well as the RTI upon startup.