IFL-CAMP / simple

S.I.M.P.L.E. - Smart Intuitive Messaging Platform with Less Effort. A Cross-Platform C++ Library to Exchange Data Across Network.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

S.I.M.P.L.E.

Smart Intuitive Messaging Platform with Less Effort.

Build Status Build status codecov


S.I.M.P.L.E. (or just simple) is a cross-platform C++ library to easily exchange data across a network.
It is built on top of ZeroMQ and uses custom FlatBuffers messages.
It provides a clean interface to the classic Publisher-Subscriber and Request-Reply patterns.

simple can be used on Windows, Linux and OSX.


Dependencies

  • A C++11 compiler (tested on gcc-5, clang-3.8, msvc14 and msvc15.)
  • CMake 3.3+
  • ZeroMQ 4.2.4+
  • cppzmq 4.3.1+
  • FlatBuffers 1.9.0+

What can I send/receive?

simple offers a light interface to FlatBuffers messages.
Common messages are provided and live under simple_msgs.
New messages can be defined - in the simple_msgs format - and sent/received using the same interface.

Usage

Install the binaries
Build from source: on Windows or Linux/Mac OSX.
Use in your C++ project: via CMake. We suggest Windows users to link to the static version of simple.

Publisher / Subscriber

  • A Publisher sends (publishes) data to any Subscriber that is listening to its IP address/port.
  • A Subscriber waits for new data from a Publisher and asynchrounsly receives it.
    An example of the Publisher/Subscriber pattern in C++ is available here.

Request / Reply

  • A Client sends a request to an IP address/port of a Server and expects a reply from it.
  • A Server waits for requests and asynchrounsly replies to a Client.
    An example of the Client/Server pattern in C++ is available here.

Inspiration from ROS

We are heavy (and happy) ROS users and we aim to provide a very similar interface.


Contacts

TUM
Chair for Computer Aided Medical Procedures
Technical University of Munich, Germany.

Salvatore Virga> : salvo.virga@tum.de
Fernanda Levy Langsch : fernanda.langsch@tum.de


License

simple is distributed under the MPL v2.0 License. See LICENSE for details.

About

S.I.M.P.L.E. - Smart Intuitive Messaging Platform with Less Effort. A Cross-Platform C++ Library to Exchange Data Across Network.

License:Mozilla Public License 2.0


Languages

Language:C++ 95.8%Language:CMake 4.2%