# 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.
[](https://travis-ci.org/IFL-CAMP/simple) [](https://ci.appveyor.com/project/SalvoVirga/simple/branch/master)
[](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
[](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.