# simpleZeroMQ **Repository Path**: Zr_Cpp/simple-zero-mq ## Basic Information - **Project Name**: simpleZeroMQ - **Description**: No description available - **Primary Language**: Unknown - **License**: MPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-05-15 - **Last Updated**: 2021-05-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## S.I.M.P.L.E. Smart Intuitive Messaging Platform with Less Effort. [![Build Status](https://travis-ci.org/IFL-CAMP/simple.svg?branch=master)](https://travis-ci.org/IFL-CAMP/simple) [![Build status](https://ci.appveyor.com/api/projects/status/vgwego8e0mddmf6k/branch/master?svg=true)](https://ci.appveyor.com/project/SalvoVirga/simple/branch/master) [![codecov](https://codecov.io/gh/IFL-CAMP/simple/branch/master/graph/badge.svg)](https://codecov.io/gh/IFL-CAMP/simple) ___ 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](https://github.com/zeromq/libzmq) and uses custom [FlatBuffers](https://github.com/google/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](https://github.com/zeromq/libzmq) 4.2.4+ - [cppzmq](https://github.com/zeromq/cppzmq) 4.3.1+ - [FlatBuffers](https://github.com/google/flatbuffers) 1.9.0+ ___ ### What can I send/receive? *simple* offers a light interface to [FlatBuffers](https://github.com/google/flatbuffers) messages. [Common messages are provided and live under *simple_msgs*](https://github.com/IFL-CAMP/simple/wiki#simple_msgs). New messages can be defined - in the *simple_msgs* format - and sent/received using the same interface. ### Usage [Install the binaries](https://github.com/IFL-CAMP/simple/wiki#install-the-binaries) Build from source: on [Windows](https://github.com/IFL-CAMP/simple/wiki/install:-windows) or [Linux/Mac OSX](https://github.com/IFL-CAMP/simple/wiki/install:-linux). Use in your C++ project: [via CMake](https://github.com/IFL-CAMP/simple/wiki#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](https://github.com/IFL-CAMP/simple/wiki/example:-pubsub). #### 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](https://github.com/IFL-CAMP/simple/wiki/example:-reqrep). #### Inspiration from ROS We are heavy (and happy) [ROS](http://www.ros.org/) users and we aim to provide a very similar interface. ___ ### Contacts [![TUM](http://campar.in.tum.de/files/goeblr/TUM_Web_Logo_blau.png "TUM Logo")](http://tum.de) [Chair for Computer Aided Medical Procedures](http://campar.in.tum.de/) [Technical University of Munich](www.tum.de), Germany. Salvatore Virga> : [salvo.virga@tum.de][salvo_email] Fernanda Levy Langsch : [fernanda.langsch@tum.de][fernanda_email] [salvo_email]: salvo.virga@tum.de [fernanda_email]: fernanda.langsch@tum.de ___ ### License *simple* is distributed under the MPL v2.0 License. See [LICENSE](https://github.com/IFL-CAMP/simple/blob/master/LICENSE) for details.