Turi Create  4.0
Introduction to CPPIPC

The CPPIPC Library is an inter-process communication library built on top of ZeroMQ sockets. It shares many similarities with other IPC systems such as COM, XPCOM, DBus, etc. CPPIPC in particular is designed to share several similarities with DBus (but also exposes a higher level C++ object interface). What differentiates CPPIPC from other interprocess communication systems, is that:

  • It is built for C++ usability in mind
  • It is designed to support large message communication (100MB to multiple GB communication is not an issue). (All other reviewed IPC systems have very low message size limits)

What CPPIPC is not:

  • Not designed for secure communication (minimal authentication support)
  • Not designed to be tolerant to message errors. (Though, a checksum could be added)
  • Not designed to be cross-architecture compatible. (Wire-format relies on system native data representations. No attempt is made to correct for endianness)
  • No cross language support. (Only C++)

What CPPIPC is:

  • Simple distributed object access.
  • Reliable communication (fault tolerant)
  • Works across multiple wire formats (tcp/ipc/inproc)

This tutorial will begin with the basics of CPPIPC, and leading up to the implementation of a simple remote "integer" service.

The tutorial is divided into the following sections:

For technical details, see Technical Details: CPPIPC .